shell指令碼中set e作用

2021-10-24 14:34:07 字數 758 閱讀 1894

最近學習shell指令碼想到乙個問題,如果指令碼**現了一條異常語句,甚至可以影響整個指令碼的使用,那麼是否有一旦出現問題就可以及時停止的方法呢?在shell指令碼中set命令就可以輕鬆實現。set命令的-e引數,linux系統自帶的說明是:"exit immediately if a ****** 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就是執行出現了異常

shell 指令碼中set e選項作用範圍

編寫shell指令碼沒多久,對於其許多命令的具體用法還不太熟悉。最近剛好有需求,就嘗試用指令碼去實現。其中就有用到set e選項。在用這個命令之前,也查過其功能,描述比較簡單 就是當命令以非零狀態退出時,則退出shell。主要作用是,當指令碼執行出現意料之外的情況時,立即退出,避免錯誤被忽略,導致最...

Unix Linux指令碼中 set e 的作用

有些指令碼中會看到這樣的語句 html view plain copy print?bin bash set e command 1 command 2 exit 0 bin bash set e command 1 command 2 exit 0 set e 這句語句告訴bash如果任何語句的執...

Unix Linux指令碼中 set e 的作用

編寫shell指令碼沒多久,對於其許多命令的具體用法還不太熟悉。最近剛好有需求,就嘗試用指令碼去實現。其中就有用到set e選項。在用這個命令之前,也查過其功能,描述比較簡單 就是當命令以非零狀態退出時,則退出shell。主要作用是,當指令碼執行出現意料之外的情況時,立即退出,避免錯誤被忽略,導致最...