[英]Check return status of psql command in unix shell scripting
我使用psql命令連接並在postgreSQL數據庫上發出查詢。 任何人都可以告訴我如何在shell腳本中檢查已執行查詢的返回狀態。
我用過echo $?
命令檢查狀態,但它總是返回零。
謝謝您的幫助。
psql
返回代碼記錄為 :
退出狀態
psql如果正常結束則返回0,如果發生自身致命錯誤則返回1(例如內存不足,文件未找到),2如果與服務器的連接變壞且會話不是交互式,則返回2腳本中發生錯誤,並且設置了變量ON_ERROR_STOP。
您可能只想使用ON_ERROR_STOP。
未通過測試並報告給shell:
$ psql -d test -v "ON_ERROR_STOP=1" <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
$ echo $?
3
失敗被忽略而沒有報告給shell:
$ psql -d test <<EOF
select error;
select 'OK';
EOF
ERROR: column "error" does not exist
LINE 1: select error;
^
?column?
----------
OK
(1 row)
$ echo $?
0
如前所述在這里 ,你還可以在你的SQL文件/腳本的頂部添加此行:
\set ON_ERROR_STOP true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.