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