我在運行的bash腳本中有一個MySQL命令。我跑其它Linux命令行這一個(其實是一個連mysql命令)命令前,但是當它到達這一個,這是行不通的:Bash腳本沒有運行MySQL命令
DEST_HOST="localhost"
DEST_DBNAME="db_name"
DEST_DBUSER="root"
DEST_DBPASS=""
# FILE NAME
MIGRATION_FILE="migration_database"
# Export/Import Commands
DO_DATABASE_UPDATE="mysql --host=$SOURCE_HOST --user=$DEST_DBUSER --password $DEST_DBNAME < $MIGRATION_FILE.sql"
echo 'Running local updates...'
$DO_DATABASE_UPDATE
echo "$DO_DATABASE_UPDATE"
# Done!
echo "Complete!"
我有migration_database.sql
文件中的我從中運行它的文件夾。正如你所看到的,我在所有內容的最後打印出UPDATE命令。會發生什麼是我運行這個,它只是在mysql菜單上打印,就像我跑mysql -I
獲得幫助菜單。
如果我複製並粘貼打印出來的命令並運行它,它效果很好。我不知道爲什麼bash不能在腳本中執行此操作。
任何想法?
我從運行它終端在我的Mac上,所以我猜這就是爲什麼它不提示我?這肯定會成爲問題,我沒有意識到是這樣。我一定會嘗試這個。我喜歡conf文件解決方案。當我回到我的電腦時,我會讓你知道我找到了什麼。感謝您及時的回覆! – MillerMedia
我一直在玩這個,它不想運行更新腳本。它會運行到'<'字符,但不起作用。如果我將它從變量聲明中分離出來,或者如果我在'<'處停止變量聲明並像'$ DO_DATABASE_UPDATE <$ MIGRATION_FILE.sql'那樣執行它,它就會起作用。在bash變量的命令中使用小於號的符號有沒有問題? – MillerMedia