variável não está sendo lida corretamente

variável não está sendo lida corretamente

Eu tenho o seguinte em um script bash:

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

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

Isso funciona bem, exceto que se conecta à porta 3306 e não à 3307. Como posso fazer com que seja lido ${target}corretamente?

Sem dividir targetem duas variáveis ​​separadas.


Se eu executar manualmente

mysql -h1.2.3.4 -P3307 -uusername -ppassword

então funciona bem, então é isso que estou tentando alcançar. É quase como se o MySQL estivesse ignorando -P3307e usando o padrão 3306.

Também tentei colocar tudo em uma variável, e também não funcionou (ignora Porta, Nome de usuário e Senha).


Parece que o problema é que o MySQL está interpretando o $targetvalor como se fosse uma coisa. Se eu mudar de porta e host, recebo:

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

Eu recebo:

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

Então não sei se isso é um problema do MySQL ou do Linux?

informação relacionada