linux 退出狀態碼

2021-10-02 11:08:51 字數 1029 閱讀 8039

在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...