首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mysqldump的特殊字符转义密码变量

使用mysqldump的特殊字符转义密码变量
EN

Stack Overflow用户
提问于 2020-03-03 22:45:38
回答 1查看 889关注 0票数 1

我正在尝试创建一个shell脚本来自动备份我的整个数据库。我的脚本希望密码在新行中,因为我不想将它存储在任何地方。下面是我的代码:

代码语言:javascript
运行
复制
#!/bin/bash
echo -n Password:
read -s PASS
echo
docker exec db /usr/bin/mysqldump --all-databases -u admin --password='\''$PASS\'' > backup-$(date "+%Y-%m-%d").sql

问题是,由于密码中的$符号,我需要将变量放在单引号中,但我不能读取单引号中的变量。我知道有几个类似的问题,但我无法用它们来解决。

因此,如果密码是'$ecretPa$$word',那么实际执行的程序应该是这样的:

代码语言:javascript
运行
复制
docker exec db /usr/bin/mysqldump --all-databases -u admin --password='$ecretPa$$word' > backup-2020-03-03.sql
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-21 23:49:31

我设法做到了这一点。也许问题不在于逃逸,而在于我试图运行它的方式。我的最终代码:

代码语言:javascript
运行
复制
#!/bin/bash
echo -n Password:
read -s PASS
echo
cmd="docker exec db /usr/bin/mysqldump --all-databases -u admin --password='$PASS' > backup-$(date "+%Y-%m-%d").sql"
eval "$cmd";
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60509759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档