2014-12-20 51 views
1

這是一個bash腳本的一部分,裏面看起來是這樣的:bash腳本無法發送指令到MySQL

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

回聲看起來是這樣的:

docker exec mysql_test_no mysql -v -uroot -e "GRANT ALL PRIVILEGES ON wordpress.* TO [email protected] IDENTIFIED BY 'changeme'" 

運行這個確切的命令工作得很好。通過bash腳本,它的行爲就好像我只是運行'mysql' 並且我得到了默認的幫助信息,沒有錯誤。

回答

2

試試這個方法:

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

沒有eval,所引用的表達不正確的解釋。

+0

這樣做。謝謝 – fjoesne

+0

@ user3009620然後請將其標記爲已接受! (請參閱我的帖子旁邊的投票箭頭下方的管道/檢查形狀圖標,左側。) – janos