백틱을 사용하여 변수 내부에 bash 이스케이프 느낌표 표시

백틱을 사용하여 변수 내부에 bash 이스케이프 느낌표 표시

test.sh라는 이름의 bash 스크립트가 있고 /tmp에 있습니다.

source $HOME/.backmeuprc
databases=`mysql -h$DBHOST -u$DBUSER -p$DBPASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

.backmeuprc 파일의 위치 /home/user는 다음과 같습니다.

DBHOST="localhost"
DBUSER="mysqluser" #MySQL user that can dump all databases
DBPASSWORD="somepasswordwith!and$and+andotherspecialcaracters'"
DBPORT="3306"

문제는 비밀번호에 가능한 모든 문자가 포함되어 있다는 것입니다. $DBPASSWORD이 상황에서 어떻게 탈출할 수 있나요? 문제는 명령이 백틱 안에 있다는 것입니다. 나는 bash 스크립트에 대한 경험이 없지만 시도해 보았지만 작동하지 않습니다 "$DBPASSWORD".'$DBPASSWORD'

나중에 편집: 여기 스크립트 링크(170행)를 참조하세요. https://github.com/Ardakilic/backmeup/blob/master/backmeup.sh

관련 정보