新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
講解一下Shell腳本中的exit狀態(tài)
命令的返回值是其退出狀態(tài),退出狀態(tài)用于檢查命令執(zhí)行的結(jié)果(成功/失?。?。如果退出狀態(tài)為0,則命令執(zhí)行成功。如果命令失敗,則退出狀態(tài)為非零。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供嘉興網(wǎng)站建設(shè)、嘉興做網(wǎng)站、嘉興網(wǎng)站設(shè)計、嘉興網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、嘉興企業(yè)網(wǎng)站模板建站服務(wù),十載嘉興做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
下面表格中是返回值對應(yīng)著退出狀態(tài)的解釋:
| 返回值 | 退出狀態(tài) |
|---|---|
| 0 | 成功 |
| 非0狀態(tài) | 失敗 |
| 2 | 用法不正確 |
| 126 | 不是可執(zhí)行文件 |
| 127 | 沒有找到指令 |
$?特殊變量
shell中的變量名$?是一個特殊的內(nèi)置變量,可以獲取最后一次執(zhí)行命令的退出狀態(tài)。
-
在執(zhí)行shell函數(shù)后,
$?返回函數(shù)中最后一次執(zhí)行命令的退出狀態(tài)。
-
在執(zhí)行shell腳本后,
$?返回腳本中最后一次執(zhí)行命令的退出狀態(tài)。
包含退出狀態(tài)的腳本實例
以下exit_status.sh腳本顯示了幾種退出狀態(tài):
[root@localhost scripts]# vim exit_status.sh
#! /bin/bash
echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# 退出狀態(tài)為0,因為命令執(zhí)行是成功的。
echo "Exit status" $?
echo .
echo -e "Incorrect usage"
echo -e "====================="
ls --option
# 使用了錯誤的用法,所以退出狀態(tài)為2。
echo "Exit status" $?
echo .
echo -e "Command Not found"
echo -e "====================="
bashscript
# 退出狀態(tài)為127,因為該腳本或者命令不存在。
echo "Exit status" $?
echo .
echo -e "Command is not an executable"
echo -e "============================="
touch execution.sh
ls -l execution.sh
./execution.sh
# 退出狀態(tài)為126,因為該文件沒有執(zhí)行權(quán)限。
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
# 退出狀態(tài)為66,函數(shù)test1中判斷文件是否不存在,不存在就返回echo語句,并定義了返回值。
echo "Exit status" $?
下面是執(zhí)行結(jié)果后,返回的各種退出狀態(tài)。
本文名稱:講解一下Shell腳本中的exit狀態(tài)
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dpideoh.html


咨詢
建站咨詢
