shell的退出狀態碼

shell中運行的每個命令都使用退出狀態碼(exit status)。退出狀態碼是一個0~255的整數,在命令結束運行時有命令傳給shell。

查看退出狀態碼

Linux提供了一個專門的變量 $? 來保存上一個已執行命令的退出狀態碼。對於需要進行檢查的命令,必須在其運行完畢後立刻查看或使用 $? 變量。它的值會變成有shell所執行的最後一條命令的退出狀態碼。

一個成功結束的命令的退出狀態碼是0。Linux錯誤退出狀態碼沒有什麼標準可循,但有一些可用的參考:

狀態碼 描述
0 命令成功結束
1 一般性未知錯誤
2 不適合的shell指令
126 命令不可執行
127 沒找到命令
128 無效的退出參數
128+x 與Linux信號x相關的嚴重錯誤
130 通過 Ctrl+C 終止的命令
255 正常範圍之外的退出狀態碼

舉例說明:

  • 無效的命令會返回一個退出狀態碼127。
  • 退出狀態碼126,表明用戶沒有執行命令的正確權限。
  • 給命令提供了無效參數,會產生一般性的退出狀態碼1,表明在命令中發生了未知錯誤。

exit 命令

默認情況下,shell腳本會以腳本中的最後一個命令的退出狀態碼退出。
使用exit命令可以改變這種行爲,允許你在腳本結束時指定一個退出狀態碼。

退出狀態碼是一個0~255的整數,參數太大,會被系統取模。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章