變數未正確讀取

變數未正確讀取

我在 bash 腳本中有以下內容:

target="-h1.2.3.4 -P3307"
user="-uusername"
pass="-ppassword"

mysql ${target} ${user} ${pass} -se"SHOW DATABSES;"

這工作正常,只是它連接到連接埠 3306 而不是 3307 ${target}

無需分成target兩個單獨的變數。


如果我手動運行

mysql -h1.2.3.4 -P3307 -uusername -ppassword

然後它就可以正常運作,這就是我想要實現的目標。這幾乎就像 MySQL 忽略-P3307並使用預設值一樣3306

我還嘗試將所有內容放入一個變數中,但這也不起作用(它忽略了連接埠、使用者名稱和密碼)。


看起來問題在於 MySQL 將該$target值解釋為一件事。如果我切換連接埠和主機,我會得到:

target="-P3307 -h1.2.3.4"
mysql ${target} ${user} ${pass} -se"SHOW DATABSES;"

我得到:

Unknown suffix ' ' used for variable 'port' (value '3307 -h1.2.3.4')
mysql: Error while setting value '3307 -h1.2.3.4' to 'port'

所以我不知道這是MySQL的問題還是Linux的問題?

相關內容