shell中set?-e的具體使用
set -e 是一個(gè) Shell 命令,它用于在腳本運(yùn)行時(shí)自動(dòng)退出,如果命令執(zhí)行失敗,則它將立即退出并返回一個(gè)非零的退出狀態(tài)碼。這個(gè)命令可以確保在腳本運(yùn)行時(shí),如果有任何錯(cuò)誤發(fā)生,腳本將停止運(yùn)行,避免繼續(xù)執(zhí)行可能會(huì)產(chǎn)生更多問題的命令。
例如,在以下腳本中,如果在執(zhí)行第一條命令時(shí)發(fā)生錯(cuò)誤,腳本將立即停止運(yùn)行,而不會(huì)繼續(xù)執(zhí)行后面的命令:
#!/bin/bash set -e # 執(zhí)行第一條命令 command1 # 執(zhí)行第二條命令 command2 # 執(zhí)行第三條命令 command3
在這個(gè)示例中,如果 command1?? 執(zhí)行失敗,腳本將停止運(yùn)行,并返回一個(gè)非零的退出狀態(tài)碼。如果 command1?? 執(zhí)行成功,腳本將繼續(xù)執(zhí)行 command2?? 和 command3。
如果不使用 set -e?
如果不使用set -e 命令,當(dāng)腳本中有命令執(zhí)行失敗時(shí),腳本將繼續(xù)執(zhí)行后面的命令。這可能會(huì)導(dǎo)致一些潛在的問題,因?yàn)楹罄m(xù)的命令可能會(huì)繼續(xù)執(zhí)行,而不考慮前面的命令是否執(zhí)行成功。
例如,在以下腳本中,如果**command1?? 執(zhí)行失敗,腳本將繼續(xù)執(zhí)行** command2?? 和 command3:
#!/bin/bash # 執(zhí)行第一條命令 command1 # 執(zhí)行第二條命令 command2 # 執(zhí)行第三條命令 command3
在這個(gè)示例中,如果 command1?? 執(zhí)行失敗,腳本將繼續(xù)執(zhí)行 command2?? 和 command3,這可能會(huì)導(dǎo)致一些潛在的問題。
因此,使用 set -e 命令可以確保在腳本運(yùn)行時(shí)自動(dòng)退出,如果命令執(zhí)行失敗,則它將立即退出并返回一個(gè)非零的退出狀態(tài)碼,以避免可能的問題。
示例
001、 不加 set -e的情況
(base) [root@PC1 test2]# ls test.sh (base) [root@PC1 test2]# cat test.sh #!/bin/bash xxxx echo step2 (base) [root@PC1 test2]# bash test.sh test.sh: line 3: xxxx: command not found step2
002、添加set -e
(base) [root@PC1 test2]# ls test.sh (base) [root@PC1 test2]# cat test.sh #!/bin/bash set -e xxxx echo step2 (base) [root@PC1 test2]# bash test.sh test.sh: line 5: xxxx: command not found
到此這篇關(guān)于shell中set -e的具體使用的文章就介紹到這了,更多相關(guān)shell set -e 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟
這篇文章主要介紹了詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟的相關(guān)資料,需要的朋友可以參考下2015-11-11利用perl、python、php、shell、sed、awk、c 實(shí)現(xiàn)字符串的翻轉(zhuǎn)
今天心血來潮,看到下面的題目后延伸了一下,回顧自己以前學(xué)到的一些知識(shí)2014-04-04shell 編寫一個(gè)帶有進(jìn)度條的程序安裝腳本
這篇文章主要介紹了shell 編寫一個(gè)帶有進(jìn)度條的程序安裝腳本,通過使用Shell腳本,我們可以輕松地實(shí)現(xiàn)命令行中的進(jìn)度條功能,從而提高工作效率,感興趣的可以了解一下2023-08-08Linux下使用Shell腳本實(shí)現(xiàn)ftp的自動(dòng)上傳下載的代碼小結(jié)
如何實(shí)現(xiàn)在ftp自動(dòng)上傳下載文件腳本呢?想必還有很多朋友都不太了解吧,下面是ftp自動(dòng)上傳下載文件腳本方法,希望對(duì)朋友們有些幫助2013-02-02Shell腳本獲取本地網(wǎng)卡IP、mac地址、子網(wǎng)掩碼、dns IP、外網(wǎng)IP
這篇文章主要介紹了Shell腳本獲取本地網(wǎng)卡IP、mac地址、子網(wǎng)掩碼、dns IP、外網(wǎng)IP,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-10-10