亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

shell基礎(chǔ)第八講

1、命令執(zhí)行狀態(tài)返回值
相信大家學(xué)習(xí)到這里肯定是對命令的使用有一定的了解,不知道大家發(fā)現(xiàn)沒有我們執(zhí)行命令有時候會成功,有時候會失敗,在我們制作自動化腳本中,如果過程中間有一個命令執(zhí)行失敗了就會導(dǎo)致任務(wù)停止,這個時候我們就會通過判斷命令是否執(zhí)行成功的方式來起到一個承上啟下的作用,這種思想在實際工作中使用很多。
大家應(yīng)該還記得我們之前分享過幾個位置參數(shù),比如$1,$2..以此往后,他們分別表示執(zhí)行腳本的第一個參數(shù),第二個參數(shù).. 以此往后。他們有共同的特點就是都是一個$字符加上一個數(shù)字來表示,而命令執(zhí)行狀態(tài)返回值同樣也使用到了$這個字符本身。
命令執(zhí)行狀態(tài)值有兩種結(jié)果,一種為0,表示命令執(zhí)行成功,還有一種為1~255之間的任意一個數(shù)值,這都是表示命令執(zhí)行是失敗的。
獲取命令執(zhí)行狀態(tài)返回值我們使用 $? 來獲取,我們可以使用echo回顯命令來獲取,比如:
bash [root@master1 ~]#echo $?
注意:這里需要強調(diào)的是使用$? 是用來判斷上一條命令的執(zhí)行狀態(tài)值的,因此在你執(zhí)行完命令之后你需要立馬使用 echo $? 來獲取狀態(tài)值,中間不能再執(zhí)行任何其他的命令,比如我們執(zhí)行一個命令來看看:
bash [root@master1 ~]#ls -l 總用量 4 -rw-------. 1 root root 1261 6月 13 2019 anaconda-ks.cfg [root@master1 ~]#echo $? 0
當我查看當前目錄的詳細文件信息時,他就打印給我們了,命令執(zhí)行本身是沒有錯誤的,因此我們查看$?的值可以看到是0。我們再來看一個例子
bash [root@master1 ~]#lss -l bash: lss: 未找到命令… 相似命令是: 'ls' [root@master1 ~]#echo $? 127
當我不小心執(zhí)行了lss命令時,shell返回一個錯誤給我們,此時我立即查看命令狀態(tài)返回值,發(fā)現(xiàn)是127,這就表示這條命令是失敗的,我們也可以看到報錯原因是因為系統(tǒng)中沒有這個命令導(dǎo)致報錯。
2、使用案例:
比如下面這個例子:
bash [root@master1 ~]#lss -l &> /dev/null [root@master1 ~]#if [ $? -eq 0 ];then echo "正確";else echo "出錯啦";fi 出錯啦
shell腳本中經(jīng)常使用到諸如把命令執(zhí)行結(jié)果寫入/dev/null,中,這種是把正確信息和錯誤提示信息統(tǒng)統(tǒng)寫給Linux的無敵洞,不給我們提示任何消息,此時就需要使用 $?來判斷命令狀態(tài)返回值是否為0這樣的方式,從而執(zhí)行下一條命令。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!