переменная не читается правильно

переменная не читается правильно

У меня в 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?

Связанный контент