最近學習shell腳本想到一個問題,如果腳本中出現了一條異常語句,甚至可以影響整個腳本的使用,那么是否有一旦出現問題就可以及時停止的方法呢?在shell腳本中set命令就可以輕松實現。set命令的-e參數,linux系統自帶的說明是:"Exit immediately if a simple command exits with a non-zero status.",也就是說,在"set -e"之后出現的代碼,一旦出現了返回值非零,整個腳本就會立即退出,那么就可以避免一些腳本的危險操作。
實驗如下:
#!/bin/sh #set -e ls /data/leo echo $? ./ex1.sh
如果沒有使用set -e,在ls /data/leo語句時會提示找不到文件,但會繼續執行下一條語句
使用了set -e后,在ls /data/leo語句時依然會提示找不到文件,但不會執行下一條語句了
補充:關於exit 0 exit 1以及echo $?說明
exit 0---是正常退出的命令
exit 1---是非正常退出的命令
echo $?獲取上次命令執行的結果,如果是0就是正常執行,如果非0就是執行出現了異常