2015-06-18 51 views
0

我想返回代碼,如0-success,4-warning,8-failure。 外殼只有兩個返回碼,即0和1.是否有可能具有上述自定義代碼?爲了成功,我需要0和失敗,我需要8個。unix中的自定義返回碼

+2

Shell不會只給出兩個返回碼?嘗試'bash -c'退出123'||在shell中echo $?'並觀察返回的狀態碼123。 – Cyrbil

+2

我投票結束這個問題作爲題外話,因爲這個問題是基於一個錯誤的假設。 – chepner

+0

if [$? -eq 0];然後echo -e「參數文件成功加載\ n返回代碼= $?\ n」否則echo -e「參數文件未加載\ n返回代碼= $?\ n」退出8 fi 我得到的返回代碼爲1 incase of failure –

回答

2

您可以返回任何8位值,但只有0意味着成功,任何其他值被視爲失敗。在失敗的情況下,值本身沒有預定義的意義,你可以選擇你想要的任何語義。

0

腳本中的函數和腳本本身返回 退出狀態。在函數或腳本 中執行的最後一個命令確定退出狀態。在腳本中,可以使用exit nnn命令將nnn退出狀態傳遞到shell(nnn必須是0到255範圍內的一個整數 )。 (source

此外,大多數編程語言允許您返回一個8位狀態碼。

在shell中,您可以通過變量$?獲取最新的狀態碼。 你可以通過使用exit Xreturn X其中-1<X<256

0

您可以使用shell腳本任何8位退出狀態發送一個。只有0被認爲是所有其他成功的失敗。