mysql - Bash 检查 mysql 命令是否失败

标签 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

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

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

感谢帮助。

最佳答案

$? == 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

关于mysql - Bash 检查 mysql 命令是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33450833/

相关文章:

bash - 在分隔符之前删除一个单词 - Bash

mysql - 如何使用 MySQL 以三列为一组检索最新的对?

c++ - 与 MySQL 和 C++ 链接

MySql:如果 SELECT != 则停止脚本(特定结果)

bash - Docker Alpine 以另一个用户身份执行命令

linux - 如何从 rsync 中排除两台服务器上都存在的目录?

mysql - 使用 EntityManager 刷新时实体继承出错

php - 我在 win xp 上安装了 php5.2.9 +mysql 5.1+apache2.2.6 。iam 无法让 php 连接到 mysql

Bash: "xargs cat",在每个文件后添加换行符

bash - 如何遍历字典列表并根据 Bash 中的键对输出进行排序?