셸 특수 변수 $0, $\#, $@, $*, $?, $$$명령 행 인자

3242 단어
변량   속뜻
$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

좋은 웹페이지 즐겨찾기