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 ele se conecta à porta 3306 e não à 3307. Como posso fazer com que ela leia ${target}
corretamente?
Sem dividir target
em 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 o -P3307
e usando o padrão 3306
.
Eu também tentei colocar tudo em uma variável, e isso não funciona (ignora a porta, nome de usuário e senha).
Parece que o problema é que o MySQL está interpretando o valor $target
como se fosse uma coisa. Se eu mudar de porta e host eu 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 eu não sei se isso é um problema do MySQL ou um problema do Linux?
Tags bash shell-script