변수가 올바르게 읽히지 않음

변수가 올바르게 읽히지 않음

Bash 스크립트에는 다음이 있습니다.

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

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

3307이 아닌 포트 3306에 연결된다는 점을 제외하면 정상적으로 작동합니다. ${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 문제인지 모르겠습니다.

관련 정보