天天看點

Linux Shell學習筆記:exit退出狀态代碼

inux提供$?特殊變量來儲存最後一條指令執行結束的退出狀态。執行完一條指令後,立即執行echo$?,可以檢視最後一條指令的退出狀态值。

正常的情況下,指令成功執行完成的退出狀态是0,如果非0,則指令執行有錯。

該指令可以用于檢查指令是否正确執行,比如在解壓包的時候,檢查解壓包是否成功十分有效。

自定義退出狀态碼,可以在腳本中定義自己的退出狀态代碼,然後使用echo $?檢查。

退出狀态碼最高是255,一般自定義的代碼值為0~255,如果超出255,則傳回該數值被256除了之後的餘數。

退出狀态代碼:

0 指令成功完成

1通常的未知錯誤

2誤用shell指令

126指令無法執行

127沒有找到指令

128無效的退出參數

128+x使用Linux信号x的緻命錯誤。

130使用Ctrl-C終止的指令

255規範外的退出狀态

ubuntu下測試結果如下

[email protected]:/home/python$ date

2013年 11月 14日 星期四 19:12:45 CST

[email protected]:/home/python$ echo $?

0

[email protected]:/home/python$ kkllk

kkllk: command not found

[email protected]:/home/python$ echo $?

127

[email protected]:/home/python$ ls

hello.py hello.py~

[email protected]:/home/python$ vim a.c

[email protected]:/home/python$ ls

hello.py hello.py~

[email protected]:/home/python$ gedit a.c

[email protected]:/home/python$ ./hello.py

bash: ./hello.py: 權限不夠

[email protected]:/home/python$ echo $?

126

[email protected]:/home/python$ date %t

date: 無效的日期"%t"

[email protected]:/home/python$ echo $?

1

[email protected]:/home/python$
           
[email protected]:~# ls -sail test

790207 4 -rwxr--r-- 1 root root 30 11月 14 19:25 test

[email protected]:~# ./test

[email protected]:~# echo $?

44

[email protected]:~# cat test

#!/bin/bash

var=300

exit $var

[email protected]:~#
           

繼續閱讀