簡體   English   中英

將mysql命令行查詢的結果放入bash腳本變量

[英]Put results of mysql command line query into bash script variable

我很難弄清楚如何將mysql查詢的結果轉換為bash shell腳本變量。

testDBName="some_database_name"
mysqlUser="root"
mysqlPassword="password"
mysqlCmd="/Applications/MAMP/Library/bin/mysql -u $mysqlUser -p $mysqlPassword -B -N"
cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "$testDBName"') #THIS IS THE TROUBLESOME LINE
if [ "$cmdRes" = "" ]; then
    echo "Table does not exist"
else
    echo "Table already exists"
fi

給我帶來麻煩的那一行是“ cmdRes = ...”。 如果我只是將表名硬編碼為可以正常工作的表名,如下所示:

cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "some_database_name"')

但是當我在一個東西中有一個$ variable時,我無法全神貫注於如何/為什么/怎么回事。 根據許多其他類似但不同的問題的答案,我嘗試將字符串的不同部分放入不同的變量中以減少引號,我嘗試了單引號,雙引號,反斜杠,雙單引號-雙引號,花括號,運行eval等-但無濟於事。

感謝您的任何幫助,您可以提供。

問題在於外殼程序不會在單引號(')內展開任何內容。

一種可能的解決方案:

cmdRes=$($mysqlCmd -e "SHOW DATABASES LIKE '$testDBName'")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM