我正在清理腳本的輸出。例如:Shell腳本錯誤處理
rm -f ./file
沒有這樣的文件或目錄
我要實現一些錯誤檢查該命令,相當於一個try/catch
聲明。換句話說,如果命令失敗,我想捕捉錯誤。
我正在清理腳本的輸出。例如:Shell腳本錯誤處理
rm -f ./file
沒有這樣的文件或目錄
我要實現一些錯誤檢查該命令,相當於一個try/catch
聲明。換句話說,如果命令失敗,我想捕捉錯誤。
爲什麼不使用一個簡單的腳本achive相同的行爲?
file=$1
if [ ! -f $file ]; then
echo "File not found!"
else
rm -f $file
fi
當您運行它時,腳本會告訴您給定的文件是否不存在。
您也可以在echo命令後面使用2>&1
重定向到stderr
和stdout
。您還可以在if語句的末尾添加exit 1
,因爲退出狀態1通常表示該命令未成功執行。
這不會像你打算的那樣工作,但在bash中這是檢測錯誤的最接近的方法。
使用set -e
或者您可以使用&&
或||
的Python:
try:
os.remove('./file')
champagne_for_everybody
except:
throw_myself_in_the_river
殼牌:
if rm ./file
then
champagne_for_everybody
else
throw_myself_in_the_river
fi
注:
-f
- POSIX rm
忽略使用-f
時丟失的文件。
'RM -f blahblahblah'沒有我的系統上打印錯誤消息。對你有幫助嗎?什麼系統? –
只是一個提示:搜索'set -e','trap' ... – anishsane