我有一个简单的 bash 脚本,它应该从数据库创建一个转储文件
docker exec -i container sh -c "mongodump --archive" > \
~/dumps/db-$(date + "%d%m%Y").dump 2> \
~/logs/dumps/db-$(date + "%d%m%Y").log \
我被要求确保脚本可以处理任何错误,因此我尝试将以下内容添加到脚本中。
docker exec -i container sh -c "mongodump --archive" > \
~/dumps/db-$(date + "%d%m%Y").dump 2> \
~/logs/dumps/db-$(date + "%d%m%Y").log \
exit_status=$?
if [ exit_status -ne 0 ]; then
echo "An error occured while running mongodump. Exit Status: $exit_status"
fi
以上是我的尝试。如果退出状态不是 0,则发送带有实际退出代码的回显消息。脚本成功创建了转储文件,但我收到以下错误:
[: exit_status: integer expression expected
我的假设是,由于我的日志重定向,命令本身实际上不会在完成时报告退出状态。但我不太确定。我仍在学习 Bash 脚本的诀窍,因此任何建议都值得赞赏。