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