預定義變數 | 作 用 |
---|---|
$? | 最後一次執行的命令的返回狀態。如果這個變數的值為 0,則證明上一條命令正確執行;如果這 個變數的值為非 0 (具體是哪個數由命令自己來決定),則證明上一條命令執行錯誤 |
$$ | 當前進程的進程號(PID) |
$! | 後台執行的最後一個進程的進程號(PID) |
[[email protected] sh]# ls
count.sh hello.sh parameter2.sh parameter.sh #ls命令正確執行
[[email protected] sh]# echo $?
0
#預定義變數"$?"的值是0,證明上一條命令正確執行
[[email protected] sh]# ls install.log
ls:無法存取install.log:沒有那個檔案或目錄
#當前目錄中沒有instal.log檔案,所以ls命令報錯了
[[email protected] sh]# echo $?
2
#變數"$?"返回一個非0的值,證明上一條命令沒有正確執行
#至於錯誤的返回值到底是多少,是在編寫ls命令時定義好的,如果碰到檔案不存在就返回數值2
[[email protected] sh]# vi variable.sh
#!/bin/bash
echo "The current process is $$"
#輸出當前進程的PID
#這個PID就是variable.sh指令碼執行時生成的進程的PID
find /root -name hello.sh &
#使用find命令在/root目錄下査找hello.sh檔案
#符號"&"的意思是把命令放入後台執行
echo "The last one Daemon process is $!"
#輸出這個後台執行命令的進程的PID,也就是輸出find命令的PID
[[email protected] sh]# chmod 755 variable.sh
#賦予執行許可權
[[email protected] sh]#./variable.sh
The current process is 26970
#指令碼variable.s執行時,PID是26970
The last one Daemon process is 26971
#find命令執行時,PID是26971