Я пишу простой сценарий для резервного копирования базы данных mysql:
#!/bin/sh
ROOTDIR=/home/dbusername
LOGDIR=$ROOTDIR/logs
DB_BACKUP_PATH=$ROOTDIR/db_backup
LOGFILE=$LOGDIR/db_backup.log
TODAY=`date +"%Y-%m-%d"`
MYSQL_HOST='localhost'
MYSQL_PORT='3306'
DATABASE_NAME='idontexist'
#################################################################
mkdir -p ${DB_BACKUP_PATH}/${TODAY}
echo "Backup started for database - ${DATABASE_NAME}"
mysqldump -h ${MYSQL_HOST} -P ${MYSQL_PORT} ${DATABASE_NAME} > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql 2> $LOGFILE
echo "exit code:"
echo $?
Когда я запускаю сценарий, код выхода, отображаемый на экране, равен 0, даже если сценарий не выполнен, поскольку база данных не 'не существует. Правильное подробное сообщение сохраняется в моем лог-файле.
Есть идеи, почему при сбое я вижу код выхода 0? Спасибо!