Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash检查mysql命令是否失败_Mysql_Bash - Fatal编程技术网

Bash检查mysql命令是否失败

Bash检查mysql命令是否失败,mysql,bash,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 即使我输入了错误的密码,脚本也会说“完成”。,因为它无法检测m

我有以下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命令错误

当有人键入错误密码时,我需要能够正确显示
错误。“
消息


感谢您的帮助。

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

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

也许使用
expect
--将
MYSQL=“which MYSQL”
替换为
MYSQL=“$(which MYSQL)”
$(which MYSQL)
并没有解决问题……这是两个错误中的第一个。如果“which MYSQL”发现了MYSQL,那么就没有必要这么做。mysql也在$PATH中搜索,如果您想使用它,请将其放在backticks mysql=
哪个mysql
中,并且mysql用户名必须在-u之后。所以-也许使用
expect
-将
MYSQL=“which MYSQL”
替换为
MYSQL=“$(which MYSQL)”
$(which MYSQL)
并没有解决问题…这是两个错误中的第一个。如果“which MYSQL”找到了MYSQL,那么就没有必要这么做。mysql也在$PATH中搜索,如果您想使用它,请将其放在backticks mysql=
哪个mysql
中,并且mysql用户名必须在-u之后。因此-urootuse:
export phppath=$(哪个php)echo$phppath
并在
echo
之前添加一个换行符使用:
export phppath=$(哪个php)echo$phppath
并在
echo
之前添加一个换行符