Ubuntu 指令返回的結果檢視/指令執行的退出狀態/退出碼檢視
在Linux 系統中,每當命令執行完成後,系統都會返回一個退出狀態。該退出狀態用一整數值表示,用於判斷命令執行正確與否。若退出狀態值為 0,表示命令執行成功;而退出狀態值不為 0時,則表示命令執行失敗。最後一次執行的命令的退出狀態值被儲存在內建變數“ $?”中,所以可以通過echo語句進行測試命令是否執行成功。 POSIX規定了以下幾種退出狀態和退出狀態的含義。
常用引數
格式:exit n
退出。設定退出碼為n。(Cause the shell to exit with a status of n.)
格式:exit
退出。退出碼不變,即為最後一個命令的退出碼。(If n is omitted, the exit status is that of the last command executed. )
格式:$?
上一個命令的退出碼。
格式:trap "commands" EXIT
退出時執行commands指定的命令。( A trap on EXIT is executed before the shell terminates.)
退出碼(exit status,或exit code)的約定:
0表示成功(Zero - Success)
非0表示失敗(Non-Zero - Failure)
2表示用法不當(Incorrect Usage)
127表示命令沒有找到(Command Not Found)
126表示不是可執行的(Not an executable)
使用示例
示例一 退出當前shell
[[email protected] ~]# [[email protected] ~]# exit logout
示例二 在指令碼中,進入指令碼所在目錄,否則退出
Bash程式碼
1 |
|
示例三 在指令碼中,判斷引數數量,不匹配就列印使用方式,退出
1 2 3 4 |
|
示例四 在指令碼中,退出時刪除臨時檔案
1 |
|
示例五 檢查上一命令的退出碼
1 2 3 4 5 |
|
以下是一些實際的例子:
[email protected]:/home$ ls
alloy pi
[email protected]:/home$ echo $?
0
#執行成功
[email protected]:/home$ ls test
ls: cannot access test: No such file or directory
[email protected]:/home$ echo $?
2
#傳遞引數失敗
[email protected]:/home$ test
[email protected]:/home$ echo $?
1
#傳遞引數失敗
[email protected]:/home$ alloy
-bash: alloy: command not found
[email protected]:/home$ echo $?
127
#沒有這個命令
---------------------
作者:alloy
來源:CSDN
原文:https://blog.csdn.net/alloyinrunning/article/details/23660265
https://www.cnblogs.com/itcomputer/p/4157859.html
版權宣告:本文為博主原創文章,轉載請附上博文連結!