变量未正确读取

变量未正确读取

我在 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的问题?

相关内容