我有一个bash脚本:
databases=`mysql -h$DBHOST -u$DBUSER -p$DBPASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
问题是当密码包含所有可能的字符时。在这种情况下,我如何逃出
$DBPASSWORD
?如果我有带'!'的密码考虑到命令在反勾号内。我没有bash脚本的经验,但是我尝试过"$DBPASSWORD"
和'$DBPASSWORD'
但都没有成功。谢谢你稍后编辑:此处链接到脚本,第170行->https://github.com/Ardakilic/backmeup/blob/master/backmeup.sh
最佳答案
首先:answer from @bishop是spot-on:不要在命令行上传递密码。
第二:对所有shell扩展使用双引号。所有人。总是。
databases=$(mysql -h"$DBHOST" -u"$DBUSER" -p"$DBPASSWORD" -e "SHOW DATABASES;" | tr -d "| " | grep -v Database)
关于linux - bash转义感叹号字符,带有反引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42628841/