我有这部分代码。
while IFS=' ' read -ra var
do
source SCRIPT 2>&1 | tee -a $log
done <<< $main_config
脚本
ssh -i id_rsa "${var[5]}"@"${var[1]}" -n 'sudo su - postgres -c "pg_dump -Fc '${var[10]}' > /tmp/'${var[12]}'"'
这部分共计 10 行(来自$main_config
变量),其中 1 种情况出现错误消息,DB 不存在。
pg_dump: chyba spojení s databází "eetB" selhalo: FATAL: database "eetB" does not exist
如果循环结束时出现 1 条错误消息,我该如何获取信息/错误代码?例如存储到某个变量。如果错误消息来自另一台服务器,在这种情况下是否可行?
我尝试过if
,,return
但没有成功。
简单来说,如果出现source
一些错误,如何获取错误代码?
谢谢。
更新
SCRIPT 有问题。ssh
命令成功,所以返回0
。我必须更改 SCRIPT,直接在本地主机上转储。
ssh -i id_rsa "${var[5]}"@"${var[1]}" -n 'sudo su - postgres -c "pg_dump -Fc '${var[10]}'"' > ${var[11]}/${var[12]}
但是现在,我遇到了问题。如果我有命令,它会在出现 的情况下tee
返回。没有它就没问题。true
false
tee
while IFS=' ' read -ra var
do
if
source scripts/$script_name 2>&1 | tee -a $log
then
status="true"
else
status="false"
fi
done <<< $main_config
你能告诉我问题出在哪里吗?