Я вызываю приложения из своего сценария оболочки, который последовательно выполняет ряд важных шагов, один из которых приведен ниже:
for database in $(
echo 'show databases;' |
mysql --defaults-extra-file=/etc/sqlbackup/my.cnf \
-e 'show databases' -s --skip-column-names|
grep -vi information_schema )
do
echo $database
done
exit 0
Я могу быть в состоянии записать вывод на экран, что я делаю с помощью функции эха.
Мой вопрос заключается в том, что произойдет, если приложение (любая командная строка, вызванная из сценария) не сможет подключиться и выдало ошибку, такую как:
`ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)`?
Сообщается ли об ошибках в отдельной переменной среды за пределами вывода строки, если да, то как я могу это обнаружить? Как изменить путь сценария в зависимости от успеха или неудачи?
Я - программист .Net, и лучшая аналогия, которую я могу сделать, - это когда выдается и обрабатывается исключение:
catch (Exception e)
{
// log the reason here: echo "error running database command: " + e.Description
}
Есть ли что-то похожее на вышеперечисленное, но только для оболочек borne/bash?