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

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

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 문제인지 알 수 없습니다.

관련 정보