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