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