Linux中變量$#,$@,$0,$1,$2,$*,$$,$?的含義
我們先寫一個簡單的腳本,執行以後再解釋各個變量的意義
腳本內容如下:
[root@oldboy ~]# cat test.txt #!/bin/bash echo "number:$#" echo "scname:$0" echo "first :$1" echo "second:$2" echo "argume:$@" echo "show parm list:$*" echo "show process id:$$" echo "show precomm stat: $?"
保存退出
執行腳本
[root@oldboy ~]# sh test.txt a b number:2 scname:test.txt first :a second:b argume:a b show parm list:a b show process id:1283 show precomm stat: 0
通過顯示結果可以看到:
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個參數
$2 是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
$* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個
$$ 是腳本運行的當前進程ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤