Bash检查mysql命令是否失败
我有以下bash脚本: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
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
之前添加一个换行符