在linux狀態中,每當命令執行完成後,系統都會返回乙個退出狀態。該退出狀態用乙個整數值表示,用於判斷命令執行的正確與否。
最後一次執行命令的退出狀態值被儲存在內建變數「$?」中,所以,可以通過echo語句測試命令是否執行成功。
一般來講,退出狀態 0 表示正常執行,沒有遭遇任何問題。其他非零的狀態碼均表示失敗。
狀態碼描述
0命令返回成功
1一般性未知錯誤
2不適合的shell命令(錯誤的shell命令)
126找到了該命令但無法執行
127沒找到命令
128無效的退出引數
128+x
與linux訊號x相關的嚴重錯誤
130通過ctrl+c終止的命令
255正常範圍之外的退出狀態碼
示例
# 訪問不存在的目錄或檔案
$ cd hello
bash: cd: hello: no such file or directory
$ echo$?1
#執行不存在的執行檔案
$ ./hello.sh
bash: ./expect.sh: no such file or directory
$ echo
$?127
# 返回成功的例子。檢視乙個檔案是否存在(存在)
$ test -e test.txt
$ echo
$?0
自定義退出狀態碼
exit
命令允許你在指令碼結束時指定乙個退出狀態碼。
$ cat exit.sh
#!/bin/bash
set -euo pipefail
echo
'this is a test'
exit 88
$ ./exit.sh
this is a test
$ echo
$?88
(以上。) shell退出狀態碼
shell中執行的命令使用退出狀態碼 exit status 告訴shell它已經執行完畢。退出狀態碼是乙個0 255的整數值,在命令結束時傳給shell。可以捕獲這個值並在指令碼中使用。按照慣例,乙個成功結束的命令的退出狀態碼是0。如果乙個命令結束時有錯誤,退出狀態碼就是乙個正數值。狀態碼及描述 ...
linux退出狀態碼及exit命令
linux提供了乙個專門的變數 來儲存上個已執行命令的退出狀態碼。對於需要進行檢查的命令,必須在其執行完畢後立刻檢視或使用 變數。它的值會變成由shell所執行的最後一條命令的退出狀態碼 root host1 test date 2017年 07月 19日 星期三 16 32 51 cst root...
Linux程序退出碼
include int main void 編譯好,然後執行,然後在shell裡面檢視程序退出碼,鍵入 echo 我們發現拿到的程序退出碼是255。我們返回的明明是 1,為什麼拿到的卻是255呢?還得從程序的狀態碼開始講起,我們知道,當乙個程序退出的時候,父程序一般都會進行收尾工作,就是呼叫wait...