我有一個為我的資料庫運行 sql 檔案的 shell 腳本,問題是當事務因任何原因(并發問題等)中止時,我想知道它已經失敗,以便我可以做其他事情,我只是不完全確定我將如何從交易已中止的命令中讀取。
'如果正常完成,psql 向外殼回傳 0,如果發生自身的致命錯誤,則回傳 1',我想檢查回傳的非零代碼。
例如:
echo 'Deploying SQL'
psql --quiet --single-transaction --file=myfile.sql
該腳本將在 cron 上運行,因此即使它在事務中止時確實提供錯誤訊息,也不會每次都有人在那里閱讀它,因此我需要在發生這種情況時能夠做一些事情。
例如類似的東西:
local result = psql --quiet --single-transaction --file=myfile.sql
if [[ result == 1 ]]; then
# do something else
else
echo 'successful'
fi
我對 shell 腳本比較陌生,所以任何幫助將不勝感激。
uj5u.com熱心網友回復:
您可以在if-else陳述句中運行該命令。
if psql --quiet --single-transaction --file=myfile.sql; then
echo 'OK'
else
echo 'KO'
fi
或者通過$?這樣的方式檢查以前的退貨狀態:
psql --quiet --single-transaction --file=myfile.sql
local result="$?"
if [[ "$result" == 0 ]]; then
echo 'OK'
else
echo 'KO'
fi
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324296.html
