
我在 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的問題?