pra*_*ado 2 bash pipe exit-status
我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
Run Code Online (Sandbox Code Playgroud)
但这将给出 的退出状态gzip -f,而不是mysqldump。我知道mysqldump如果我不在gzip那里使用,我可以获得退出状态,但是在这种方法中有什么方法可以获得退出 ststusmysqldump吗?
您可以使用 PIPESTATUS 变量来获取管道每个元素的退出状态。
if [ ${PIPESTATUS[0]} -ne 0 ];then
echo "mysqldump Query executed with error !!"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)