Linux shell编程:状态变量
四大特殊狀態(tài)變量:$?、 $$、 $!、 $_
$?的作用是:獲取執(zhí)行上一個(gè)指令的執(zhí)行狀態(tài)返回值,返回0表示上一個(gè)命令或者程序執(zhí)行成功,返回的值為非0則表示上一個(gè)命令執(zhí)行失敗。
$$的作用是:獲取當(dāng)前執(zhí)行的shell腳本的進(jìn)程號(hào)PID。
$!的作用是:獲取上一個(gè)后臺(tái)工作的進(jìn)程的進(jìn)程號(hào)PID。
$_的作用是:獲取在此之前執(zhí)行的命令或腳本的最后一個(gè)參數(shù)。
我們通過一個(gè)簡(jiǎn)單的演示實(shí)例了解下這些狀態(tài)變量的用法,請(qǐng)看下圖
?
?
測(cè)試命令
當(dāng)我執(zhí)行了一個(gè)切換到root目錄的命令沒有執(zhí)行成功,我再用echo $?命令查看結(jié)果,結(jié)果為2,非零;
當(dāng)我執(zhí)行一個(gè)切換到/home/zhanghq目錄的命令執(zhí)行成功了,我再用echo $?命令查看結(jié)果,結(jié)果為0;
我用echo $$命令看到了進(jìn)程號(hào)14623;
這些命令這樣執(zhí)行看起來很簡(jiǎn)單,或許你會(huì)覺得沒什么用,因?yàn)槊顖?zhí)行不成功會(huì)有錯(cuò)誤提示,命令執(zhí)行成功會(huì)有正確的回顯內(nèi)容,或者直接換行。但是確實(shí)是有一些應(yīng)用場(chǎng)景必須用到這些變量。
比如一個(gè)新手用戶,在安裝服務(wù)的時(shí)候,可以通過執(zhí)行$?這個(gè)命令的返回值來確定命令的執(zhí)行狀態(tài),從而快速確定命令是否執(zhí)行成功。
比如一個(gè)系統(tǒng)管理員對(duì)當(dāng)前服務(wù)器的數(shù)據(jù)庫(kù)進(jìn)行備份時(shí),我們會(huì)再執(zhí)行關(guān)鍵命令的時(shí)候,通過獲取返回值來判斷命令是否成功,確認(rèn)數(shù)據(jù)是否完整。
而程序員通過“exit 數(shù)字”“return 數(shù)字”把數(shù)字返回給$?,憑借此可以知道程序的運(yùn)行狀態(tài)。
總結(jié)
以上是生活随笔為你收集整理的Linux shell编程:状态变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 十道上市公司java面试试题
- 下一篇: 概率论面经汇总
