você pode usar a variável PIPESTATUS para obter o status de saída de cada elemento do pipeline.
if [ ${PIPESTATUS[0]} -ne 0 ];then
echo "mysqldump Query executed with error !!"
exit 1
fi
Estou executando esse loop while
em um script para obter mysqldump
e compactá-lo, mas quero exit
do script se o table
não existir. Abaixo está o que eu tentei.
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
Mas isso dará o status de saída de gzip -f
, mas não de mysqldump
. Eu sei que posso obter o status de saída de mysqldump
se eu não estiver usando gzip
lá, mas existe alguma maneira neste método para obter o ststus de saída para mysqldump
?
Tags bash pipe return-status