Shell 指令碼中的exit狀態解釋
的返回值是其退出狀態,退出狀態用於檢查 執行的結果(成功/失敗)。如果退出狀態為0,則命令執行成功。如果命令失敗,則退出狀態為非零。 |
下面表格中是返回值對應著退出狀態的解釋:
返回值 | 退出狀態 |
---|---|
0 | 成功 |
非0狀態 | 失敗 |
2 | 用法不正確 |
126 | 不是可執行檔案 |
127 | 沒有找到指令 |
$?特殊變數
中的變數名
$?
是一個特殊的內建變數,可以獲取最後一次執行命令的退出狀態。
- 在執行shell函式後,
$?
返回函式中最後一次執行命令的退出狀態。 - 在執行shell
後,
$?
返回 中最後一次執行命令的退出狀態。
包含退出狀態的指令碼例項
以下
exit_status.sh
指令碼顯示了幾種退出狀態:
[root@localhost scripts]# vim exit_status.sh #! /bin/bash echo -e "Successful execution" echo -e "=====================" echo "hello world" # 退出狀態為0,因為命令執行是成功的。 echo "Exit status" $? echo . echo -e "Incorrect usage" echo -e "=====================" ls --option # 使用了錯誤的用法,所以退出狀態為2。 echo "Exit status" $? echo . echo -e "Command Not found" echo -e "=====================" bashscript # 退出狀態為127,因為該指令碼或者命令不存在。 echo "Exit status" $? echo . echo -e "Command is not an executable" echo -e "=============================" touch execution.sh ls -l execution.sh ./execution.sh # 退出狀態為126,因為該檔案沒有執行許可權。 echo "Exit status" $? echo . echo -e "Custom status" echo -e "=====================" function test1(){ if [ ! -x "./execution.sh" ]; then echo "\"./execution.sh\" no execute permission!!" return 66 fi } test1 # 退出狀態為66,函式test1中判斷檔案是否不存在,不存在就返回echo語句,並定義了返回值。 echo "Exit status" $?
下面是執行結果後,返回的各種退出狀態。
總結
命令的返回值是其退出狀態,退出狀態用於檢查命令執行的結果(成功/失敗)。如果退出狀態為0,則命令執行成功。如果命令失敗,則退出狀態為非零。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2839221/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 利用shell指令碼監控網站狀態指令碼網站
- web頁面中http返回的狀態碼解釋WebHTTP
- HTTP 常用狀態碼解釋HTTP
- useSyncExternalStoreExports 狀態原始碼解釋Export原始碼
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- 前端釋出shell指令碼前端指令碼
- shell動態指令碼和pl/sql動態指令碼的比較指令碼SQL
- shell指令碼中文註釋亂碼問題(解決)指令碼
- 檢測mysql狀態的指令碼MySql指令碼
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- 利用shell指令碼生成動態sql指令碼SQL
- 批次解壓shell指令碼指令碼
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- linux shell指令碼中 =~ 的作用Linux指令碼
- Linux shell程式設計(一)shell指令碼中的變數詳解Linux程式設計指令碼變數
- 【Shell】使用Shell指令碼快速完成SQL指令碼中重複枯燥的任務指令碼SQL
- 9、在Shell指令碼中呼叫其他指令碼指令碼
- 案例五:shell指令碼實現定時監控http服務的執行狀態指令碼HTTP
- Shell指令碼中cd命令使用指令碼
- 如何呼叫python中的shell指令碼?Python指令碼
- Shell指令碼之sed詳解指令碼
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- Linux/Unix shell 指令碼中呼叫SQL,RMAN指令碼Linux指令碼SQL
- shell程式的結束狀態
- shell指令碼指令碼
- shell指令碼中cd命令無效指令碼
- shell指令碼中的變數及應用指令碼變數
- 注意shell指令碼中ps -ef|grep的坑指令碼
- 關於有狀態和無狀態會話bean的解釋 (轉)會話Bean
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- HTTP狀態碼詳解HTTP
- shell中set指令的用法
- haproxy狀態檢測指令碼(完成高可用)指令碼
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- 理解 shell 指令碼中的常見用法: 2>&1指令碼
- Shell指令碼中傳送html郵件的方法指令碼HTML