Bash脚本无法向mysql发送指令

时间:2014-12-20 19:25:14

标签: mysql bash docker

这是Bash脚本的一部分,内部看起来像这样:

createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" 
echo $createdbcmd
$createdbcmd

回声看起来像这样:

docker exec mysql_test_no mysql -v -uroot -e "GRANT ALL PRIVILEGES ON wordpress.* TO user@172.17.0.63 IDENTIFIED BY 'changeme'" 

运行这个确切的命令可以正常工作。通过bash脚本,它就好像我只是在运行'mysql' 我得到默认的帮助信息没有错误。

1 个答案:

答案 0 :(得分:2)

尝试这种方式:

createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" 
echo $createdbcmd
eval $createdbcmd

如果没有eval,则引用的表达式无法正确解释。