国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

干貨 | Linux shell 語法 if [ $? == 0 ] 詳細

2024/09/27
9.4萬
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

哈嘍,大家好,我是小G。

linux shell 功能很強大,平時工作主要在linux下做開發(fā),不管是調(diào)試問題、還是自動化測試需要,或者是閱讀項目代碼中的編譯構(gòu)建腳本,基本上都避免不了shell 語法規(guī)則的學習。今天記錄一篇 linux shell 語法筆記。之前其他所有?linux命令系列?文章,可見文章末尾。

if [ $? == 0 ]

語法很簡單,

1、 $??是上一條程序指令執(zhí)行是否成功的標志,如果執(zhí)行成功則$? 值為0,否則值不為0 ;

2、$??最大的價值,就是可以用來判斷上一個條程序指令執(zhí)行是否成功,利用這樣的特性,就會很方便我們干一些 if...else...的事情;

3、 if [ $? == 0 ]?等價于 if [ $? -eq 0 ] 。

所以, if [ $? == 0 ] ?這條語句,主要就是可以用來判斷上一個命令執(zhí)行后的退出狀態(tài)。

在平時編寫 shell 腳本的時候,是經(jīng)常會看到有使用if語句以及$? 的,語法簡單而且非常有用。如:

?if?[?"$?"?!=?0?] ;?then
? ?echo?" last cmd is failed"
? ?exit?1
?fi

再如,附一個借助 $? ,實現(xiàn)自動刪除不必要文件的例子:

#! /bin/bash
My_DIR='/temp/test/' ?

cd $My_DIR
if [ $? -eq 0 ]; then ?# 檢查cd命令是否成功,如果成功才執(zhí)行rm命令
 ? ? ? ?rm -rf *txt
else 'test directory is not exist' ?# 如果cd命令運行失敗,則打印一個錯誤信息,并退出,返回狀態(tài)碼1
 ? ? ? ?exit 1
fi

最后,附個其他常見特殊符號和含義:

$0: 腳本本身,即腳本的名字
$*: 以一對雙引號給出參數(shù)列表
$@: 將各個參數(shù)分別加雙引號返回
$#: 參數(shù)的個數(shù)
$_: 代表上一個命令的最后一個參數(shù)
$$: 代表所在命令的PID
$!: 代表最后執(zhí)行的后臺命令的PID
$?: 代表上一個命令執(zhí)行后的退出狀態(tài)

shell真的很強大,熟悉了shell感覺就是生產(chǎn)力,最近工作中還有碰到一個難搞的低概率性重啟死機異常問題,最后為了復現(xiàn)、修改、壓測,也是借助于Linux shell 腳本最終搞定的。解決死機問題時涉及的知識點比較多,后續(xù)有時間把核心的 Linux shell 腳本實現(xiàn)看是否能抽離出來,再整理一下,寫一篇文章吧,Mark一下。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄
年辖:市辖区| 井冈山市| 广水市| 乐山市| 静安区| 济阳县| 紫阳县| 隆昌县| 海口市| 河北省| 巴里| 霍山县| 正镶白旗| 基隆市| 鲁山县| 台湾省| 南丹县| 张家港市| 垣曲县| 赣州市| 泗水县| 文山县| 瑞金市| 湘潭市| 鄂尔多斯市| 当阳市| 屏南县| 胶州市| 林口县| 蒲城县| 孟连| 萨嘎县| 荆门市| 鄱阳县| 花莲县| 清苑县| 湘阴县| 简阳市| 涟源市| 滕州市| 萨嘎县|