2021-06-06
關鍵字:shell參數系統變量
變量名 | 含義 |
$@ | 此命令下所攜帶的所有參數。以空格隔開 |
$* | 此命令下所攜帶的所有參數。以空格隔開 |
$# | 此命令下所攜帶參數的數量。 |
$n | n是0 ~ n 的數字,表示第幾個參數。$0表示命令名本身。$1表示第一個參數,以此類推。 |
$_ | 保存之前執行的命令的最後一個參數 |
$$ | 獲取當前進程的PID,即本shell命令的進程ID號。 |
$! | 在後臺運行的最後一個進程的PID。 |
$? | 上一次命令的執行結果。0爲執行成功,其它值表示執行失敗。 |
以下是測試這些系統變量的源碼:
#!/bin/sh echo "\$@:$@" echo "\$*:$*" echo "\$#:$#" echo "\$0:$0" echo "\$1:$1" echo "\$_:$_" echo "\$$:$$" echo "\$!:$!" ls jkkk 2> /dev/null echo "\$?:$?"
上述倒數第二行是人爲構造一個命令執行出錯的場景出來以測試 $? 變量的值。
以下是執行結果:
root@ubuntu:~# ./param.sh p1 p2 $@:p1 p2 $*:p1 p2 $#:2 $0:./param.sh $1:p1 $_:./param.sh $$:6644 $!: $?:2