Finalize sua instrução awk
e sempre use aspas adequadas ao usar o bash.
Finalmente, "[" como test
é para o Bourne Shell sh
; use "[[" ao escrever scripts Bourne-Again Shell ( bash
).
As expressões Grep podem não funcionar da mesma maneira em todos os sistemas. Eu tentei tornar o seu mais genérico.
#!/bin/bash -x
# don't set flags unless you know you need 'em.
#
# Routine to check integrity of the restored backup
#
TABLE_CHECKS="table_checks-'date +%Y-%m-%d_%Hh%Mm%Ss'.txt"
mysqlcheck -e -c --all-databases > $TABLE_CHECKS
# grep can do the work you want in one step.
count_check="$(grep -c -E '(error|Error)' $TABLE_CHECKS)"
# What did you get?
echo "count_check is: \"${count_check}\""
# unnecessary indenting makes this hard to read
if [[ $count_check -eq 0 ]]
then
echo "Tables ok..."
rm $TABLE_CHECKS
exit 0
else
echo "Error on one or more tables. Check output file: ${TABLE_CHECKS}"
exit 1
fi