bash escape exclamation character dentro da variável com backtick

1

Eu tenho este nome de script bash test.sh e localizado em / tmp:

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

o arquivo .backmeuprc está localizado em /home/user e tem o seguinte:

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

e o problema é quando a senha tem todos os caracteres possíveis. Como posso escapar do $DBPASSWORD neste caso? A questão é que o comando está dentro dos backticks. Eu não tenho experiência em scripts bash, mas eu tentei com "$DBPASSWORD" e com '$DBPASSWORD' e não funciona.

EDITAR MAIS TARDE: veja o link do script aqui, linha 170 link

    
por Morpheus_ro 06.03.2017 / 16:55

0 respostas