Linux shell程式設計:狀態變數
阿新 • • 發佈:2019-02-03
四大特殊狀態變數:$?、 $$、 $!、 $_
$?的作用是:獲取執行上一個指令的執行狀態返回值,返回0表示上一個命令或者程式執行成功,返回的值為非0則表示上一個命令執行失敗。
$$的作用是:獲取當前執行的shell指令碼的程序號PID。
$!的作用是:獲取上一個後臺工作的程序的程序號PID。
$_的作用是:獲取在此之前執行的命令或指令碼的最後一個引數。
我們通過一個簡單的演示例項瞭解下這些狀態變數的用法,請看下圖
測試命令
當我執行了一個切換到root目錄的命令沒有執行成功,我再用echo $?命令檢視結果,結果為2,非零;
當我執行一個切換到/home/zhanghq目錄的命令執行成功了,我再用echo $?命令檢視結果,結果為0;
我用echo $$命令看到了程序號14623;
這些命令這樣執行看起來很簡單,或許你會覺得沒什麼用,因為命令執行不成功會有錯誤提示,命令執行成功會有正確的回顯內容,或者直接換行。但是確實是有一些應用場景必須用到這些變數。
比如一個新手使用者,在安裝服務的時候,可以通過執行$?這個命令的返回值來確定命令的執行狀態,從而快速確定命令是否執行成功。
比如一個系統管理員對當前伺服器的資料庫進行備份時,我們會再執行關鍵命令的時候,通過獲取返回值來判斷命令是否成功,確認資料是否完整。
而程式設計師通過“exit 數字”“return 數字”把數字返回給$?,憑藉此可以知道程式的執行狀態。