【发布时间】:2021-10-14 02:54:12
【问题描述】:
我有一个 shell 脚本,它为我的数据库运行一个 sql 文件,问题是当事务因任何原因(并发问题等)中止时,我想知道它已经失败,以便我可以做其他事情,我只是不完全确定如何从命令中读取事务已中止。
'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 脚本比较陌生,因此非常感谢任何帮助。
【问题讨论】:
-
你怎么知道事务被中止了?退出代码?输出到标准错误?输出到日志文件?
-
原来问题里应该有,现在加进去。