Bash检查mysql命令是否失败

时间:2015-10-31 11:05:46

标签: mysql bash

我有以下bash脚本:

MYSQL="which mysql"
SQL="CREATE DATABASE IF NOT EXISTS TEST;"

read -p -s "Enter mySQL password:" DBPASS

$MYSQL -root -p$DBPASS -e "$SQL"
if [ "$?" -eq 0 ]; 
then
   echo "Failed."
else
   echo "Done."
fi

即使我输入了错误的密码,脚本也会显示"Done.",因为它无法检测到mysql命令错误......

当有人输入错误的密码时,我需要能够正确显示"Error."消息。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:5)

$? == 0表示命令成功运行。

试试这个:

MYSQL="which mysql"
SQL="CREATE DATABASE IF NOT EXISTS TEST;"

read -p -s "Enter mySQL password:" DBPASS

$MYSQL -root -p$DBPASS -e "$SQL"
if [ "$?" -eq 0 ]; 
then
   echo "Done."
else
   echo "Failed."
fi