MySQLSHOW Подавить предупреждение в сценарии Bash

Я работаю над простым bash-скриптом, и одна из его задач — проверить, существует ли уже база данных, прежде чем двигаться дальше. Это достаточно простой код, но я получаю предупреждающее сообщение всякий раз, когда пытаюсь запустить скрипт, и я хочу его подавить.

Вот код:

if ! mysql -uroot -proot -e "use $NAME"; then
    echo YES
else
    echo NO
fi

Итак, в качестве вывода я получаю следующее сообщение, когда оператор if возвращает значение true:

ERROR 1049 (42000) at line 1: Unknown database 'database'
YES

Как я могу подавить это сообщение? Это не останавливает выполнение скрипта, но я бы предпочел этого не видеть.


person Colin    schedule 17.03.2016    source источник


Ответы (1)


Он просто говорит вам, что БД с именем database (которое, по-видимому, передается как значение переменной $NAME) не существует. Используйте правильное имя БД, и предупреждения не будет.

Чтобы просто отключить предупреждение, перенаправьте весь вывод на /dev/null как обычно:

if ! mysql -uroot -proot -e "use $NAME" 2>&1 >/dev/null; then
    echo YES
else
    echo NO
fi
person dekkard    schedule 17.03.2016
comment
Извините, я думаю, вы неправильно поняли мой вопрос. Я спрашиваю, как подавить это предупреждающее сообщение. Я понимаю, почему он появляется. - person Colin; 18.03.2016