一、Shell腳本中$0、$?、$!、$$、$*、$#、$@等的意義說明
(1)$$
Shell本身的PID(ProcessID,即腳本運行的當前進程ID號)
(2)$!
Shell最后運行的后台Process的PID(后台運行的最后一個進程的
進程ID號)
(3)$?
最后運行的命令的結束代碼(返回值)即執行上一個指令的返回值 (顯示最后命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)
(4)$-
顯示shell使用的當前選項,與set命令功能相同
(5)$*
所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數,此選項參數可超過9個。
(6)$@
所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
(7)$*
跟$@類似,但是可以當作數組用
(8)$#
添加到Shell的參數個數
(9)$0
Shell本身的文件名
(10)$1~$n
添加到Shell的各參數值。$1是第1參數、$2是第2參數…
二、腳本實例
(1)$# 、$0 、$1 、$2 、$@
通過顯示結果可以看到:
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個參數
$2 是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
(2)$?
Linux shell中if [ $? -eq 0 ] 語句判斷命令是否執行成功,使用時需要注意,if后面的中括號[ $? -eq 0 ],括號的兩邊需要有一個空格。
(3)檢測程序是否正在運行
grep后為需要檢測的程序名,也可以是當前腳本名稱。