退出狀態(tài), 一般情況下,0為成功,1-255為失敗
每個(gè)命令都會(huì)返回一個(gè)退出狀態(tài)(exit status),有時(shí)也叫做返回狀態(tài)(return status)或退出碼(exit code)
命令執(zhí)行成功返回0,如果返回一個(gè)非0值,通常情況下會(huì)被認(rèn)為是一個(gè)錯(cuò)誤代碼。一個(gè)運(yùn)行狀態(tài)良好的UNIX命令、程序和工具在正常執(zhí)行退出后都會(huì)返回一個(gè)0的退出碼,當(dāng)然也有例外
腳本中的函數(shù)和腳本本身也會(huì)返回一個(gè)退出狀態(tài)。在腳本或者腳本函數(shù)中執(zhí)行的最后的命令會(huì)決定它們的退出狀態(tài)。在腳本中,exit nnn 命令將會(huì)把nnn退出狀態(tài)碼傳遞給shell(nnn 必須是 0-255 之間的整型數(shù))
當(dāng)一個(gè)腳本以不帶參數(shù)的 exit 來結(jié)束時(shí),腳本的退出狀態(tài)由腳本最后執(zhí)行命令決定(exit 命令之前)
邏輯非操作符 ! 將會(huì)反轉(zhuǎn)測(cè)試或命令的結(jié)果,并且這將會(huì) 影響退出狀態(tài)
#!/bin/bash
COMMAND_1
...
COMMAND_LAST
# 將以最后的命令來決定退出狀態(tài)
exit # 正常都是exit $? ,并且 $? 對(duì)于測(cè)試腳本中的命令的執(zhí)行結(jié)果特別有用
# exit,exit $? 以及省略 exit 效果等同
在管道執(zhí)行后,$? 給出最后執(zhí)行的那條命令的退出狀態(tài)
唯愛與技術(shù)不可辜負(fù)
2017-10-14 23 : 43
回龍觀