1、Linux命令之exit - 退出當前shell用途說明
exit命令用於退出當前shell,在shell指令碼中可以終止當前指令碼執行,不退出的話,可能會繼續執行後面的程式。
常用參數
格式:exit n
退出。設定退出碼為n。(Cause the shell to exit with a status of n.)
格式:exit
退出。退出碼不變,即為最後一個命令的退出碼。(If n is omitted, the exit status is that ofthe last command executed.)
格式:$?
上一個命令的退出碼。
格式:trap "commands" EXIT
退出時執行commands指定的命令。( A trap on EXIT is executed before the shellterminates.)
退出碼(exit status,或exit code)的約定:
0表示成功(Zero - Success)
非0表示失敗(Non-Zero - Failure)
2表示用法不當(Incorrect Usage)
127表示命令沒有找到(Command Not Found)
126表示不是可執行檔(Not an executable)
>=128 訊號產生
當你 exit 0 的時候,在調用環境 echo $? 就返回0,也就是說調用環境就認為你的這個程式執行正確
當你 exit 1 的時候,一般是出錯定義這個1,也可以是其他數字,很多系統程式這個錯誤編號是有約定的含義的。 但不為0 就表示程式運行出錯。 調用環境就可以根據這個傳回值判斷 你這個程式運行是否ok。
如果你用 指令碼 a 調用 指令碼b ,要在a中判斷b是否正常返回,就是根據 exit 0 or 1 來識別。
執行完b後, 判斷 $? 就是傳回值
使用樣本
樣本一 退出當前shell
[root@new55 ~]# [root@new55 ~]# exit logout
樣本二 在指令碼中,進入指令碼所在目錄,否則退出
Bash代碼
cd $(dirname $0) || exit 1
樣本三 在指令碼中,判斷參數數量,不匹配就列印使用方式,退出
Bash代碼 " exit 2 fi" quality="high" allowscriptaccess="always"type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer">
if [ "$#" -ne "2" ]; then
echo "usage: $0 <area> <hours>"
exit 2
fi
樣本四 在指令碼中,退出時刪除臨時檔案
Bash代碼
trap "rm -f tmpfile; echo Bye." EXIT
樣本五 檢查上一命令的退出碼
Bash代碼
./mycommand.sh
EXCODE=$?
if [ "$EXCODE" == "0" ]; then
echo "O.K"
fi
2、expr 命令
對整數型變數進行算術運算
expr 3 + 5
有空格
expr $var1 - 5
expr $var1 / $var2 除法
expr $var1 \* 10 乘法 要逸出字元