while
我正在脚本中运行此循环来获取并压缩它,但如果该脚本不存在,mysqldump
我想要该脚本。以下是我尝试过的。exit
table
while read TABLES; do
sudo mysqldump $DB $TABLES | gzip -f > $DB.$TABLES.sql.gz
if [ $? != 0 ]; then
echo "mysqldump Query executed with error !!"
exit 1
fi
done < file
但这将给出 的退出状态gzip -f
,但不会给出 的退出状态mysqldump
。我知道mysqldump
如果我不在那里使用,我可以获得退出状态gzip
,但是此方法有什么方法可以获取退出状态mysqldump
吗?
答案1
您可以使用 PIPESTATUS 变量来获取管道每个元素的退出状态。
if [ ${PIPESTATUS[0]} -ne 0 ];then
echo "mysqldump Query executed with error !!"
exit 1
fi