shell指令碼中報錯不立即退出設定

2021-10-18 06:06:33 字數 711 閱讀 8789

set -e 表示有報錯即退出, set +e 表示關閉這種設定。 set -e 等價於 set -o errexit , set +e 等價於 set +o errexit 。

如下指令碼若不設定set +e,當git clone失敗之後將會退出,但是設定之後如果每次都失敗則會將計數器跑完3次

例子:retry_count=3 # 重試標識,flag=0 表示任務正常,flag=1 表示需要進行重試

count=0 #記錄重試次數

while [ 0 -eq 0 ]

doset +e

git clone --depth 1 --branch $gitlabtargetbranch $gitlabsourcereposshurl 2>/dev/null

if [ katex parse error: expected 'eof', got '#' at position 23: … ] then #̲執行成功,不重試 …[$+1]

if [ $ -eq $retry_count ]; then #指定重試次數,重試超過5次即失敗

echo 「git clone error」

exit 1

fiecho 『retry the $count time』

echo 「…retry in 2 seconds …」

sleep 2

fiset -e

done

華為應用鎖退出立即鎖 華為應用鎖退出不立即上鎖

華為應用鎖退出不立即上鎖的原因可能是設定的問題,或者是需要按電源鍵鎖屏後,應用鎖才能生效。華為技術 是一家生產銷售通訊裝置的民營通訊科技公司,主要創始人任正非,成立於1987年,總部位於深圳。1996年華為開始進入大獨立國協市場 1998年將市場拓展到中國主要城市並把觸角探向歐美 2003年與3co...

Shell中, 退出整個指令碼

cat test.sh 可以看到直接使用exit可以退出指令碼,並且可以將錯誤碼作為引數傳遞。下面我們將指令碼做一點點改動。cat test.sh 在管道 中執行exit script函式,不會退出整個指令碼!原因在於,exit只能退出它所在的shell,而放在管道中執行的命令 函式都是在獨立的sh...

windows編輯shell指令碼執行報錯

windows編輯shell指令碼執行報錯 問題 2019年10月,在開發需求的時候需要在主機上編寫shell指令碼。因為自己使用的是win系統,在notepad 編寫指令碼。將指令碼上傳主機後,執行報錯 syntax error near unexpected token do 將主機上可正常執行...