変数が正しく読み込まれない

変数が正しく読み込まれない

bash スクリプトには次の内容があります:

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

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

${target}これは正常に動作しますが、ポート 3307 ではなくポート 3306 に接続します。正しく読み取るにはどうすればよいですか?

2 つの別々の変数に分割せずにtarget


手動で実行すると

mysql -h1.2.3.4 -P3307 -uusername -ppassword

-P3307すると正常に動作するので、これが私が実現しようとしていることです。MySQL が を無視して、デフォルトの を使用しているかのようです3306

すべてを 1 つの変数に入れることも試みましたが、これも機能しません (ポート、ユーザー名、パスワードは無視されます)。


問題は、MySQL が$target値を 1 つのものとして解釈していることのようです。ポートとホストを切り替えると、次のようになります。

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 の問題なのかはわかりません。

関連情報