셸 특수 변수 $0, $\#, $@, $*, $?, $$$명령 행 인자
$0 현재 스 크 립 트 의 파일 이름
$n 스 크 립 트 나 함수 에 전달 되 는 인자 입 니 다.n 은 하나의 숫자 로 몇 번 째 인 자 를 나타 낸다.예 를 들 어 첫 번 째 인 자 는 $1 이 고 두 번 째 인 자 는 $2 입 니 다.
$# 스 크 립 트 나 함수 에 전달 되 는 매개 변수 갯 수 입 니 다.
$* 스 크 립 트 나 함수 에 전달 되 는 모든 인자 입 니 다.
$@ 스 크 립 트 나 함수 에 전달 되 는 모든 인자 입 니 다.
따옴표 (") 에 포 함 될 때 $* 와 조금 다 르 면 아래 에 설명 하 겠 습 니 다.
$? 이전 명령 의 종료 상태 나 함수 의 반환 값 입 니 다.
$$ 현재 Shell 프로 세 스 ID 입 니 다.셸 스 크 립 트 에 대해 서 는 이 스 크 립 트 가 있 는 프로 세 스 ID 입 니 다.
#!/bin/bash
#. a.sh #sh/bash file.sh (ubuntu中sh指向dash,可以用ls -l /bin/sh来查看),该file.sh可以无“执行权限”
#source a.sh #source和.等价,在当前bash环境下读取并执行file.sh中的命令,该file.sh可以无“执行权限”
#./file.sh 该file.sh需要“执行权限”(chmod +x file.sh)
out(){
echo "File name:$0"
echo "First Parameter:$1"
echo "Second Parameter:$2"
echo "Quoted Values:$@"
echo "Quoted Values:$*"
echo "Total Number of Parameters:$#"
echo "print each param from \$*"
for var in $*
do
echo "$var"
done
echo "print each param from \$@"
for var in $@
do
echo "$var"
done
}
echo "————————执行out函数,参数为文件参数$3,$1,$2,$0————————"
out $3 $1 $2 $0 #空格对参数进行分割
echo "————————sh文件中的语句————————————"
echo "File name:$0"
echo "First Parameter:$1"
echo "Second Parameter:$2"
echo "Quoted Values:$@"
echo "\"\$@\"=""$@"
echo "Quoted Values:$*"
echo "\"\$*\"=""$*"
echo "Total Number of Parameters:$#"
echo "print each param from \$*"
for var in $*
do
echo "$var"
done
echo "print each param from \"\$*\""
for var in "$*"
do
echo "$var"
done
echo "print each param from \$@"
for var in $@
do
echo "$var"
done
echo "print each param from \"\$@\""
for var in "$*"
do
echo "$var"
done
출력 결과
hyc@hyc-csu:~/shellCommands$ bash b.sh 3 6 9
————————执行out函数,参数为文件参数9,3,6,b.sh————————
File name:b.sh
First Parameter:9
Second Parameter:3
Quoted Values:9 3 6 b.sh
Quoted Values:9 3 6 b.sh
Total Number of Parameters:4
print each param from $*
9
3
6
b.sh
print each param from $@
9
3
6
b.sh
————————sh文件中的语句————————————
File name:b.sh
First Parameter:3
Second Parameter:6
Quoted Values:3 6 9
"$@"=3 6 9
Quoted Values:3 6 9
"$*"=3 6 9
Total Number of Parameters:3
print each param from $*
3
6
9
print each param from "$*"
3 6 9
print each param from $@
3
6
9
print each param from "$@"
3 6 9
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.