la variable no se lee correctamente

la variable no se lee correctamente

Tengo lo siguiente en un script bash:

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

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

Esto funciona bien, excepto que se conecta al puerto 3306 y no al 3307. ¿Cómo puedo hacer que se lea ${target}correctamente?

Sin dividirse targeten dos variables separadas.


Si ejecuto manualmente

mysql -h1.2.3.4 -P3307 -uusername -ppassword

entonces funciona bien, eso es lo que estoy tratando de lograr. Es casi como si MySQL estuviera ignorando -P3307y usando el valor predeterminado 3306.

También intenté ponerlo todo en una variable y tampoco funciona (ignora el puerto, el nombre de usuario y la contraseña).


Parece que el problema es que MySQL interpreta el $targetvalor como si fuera una sola cosa. Si cambio Puerto y Host obtengo:

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

Yo obtengo:

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

Entonces, no sé si es un problema de MySQL o de Linux.

información relacionada