gpt4 book ai didi

bash - 在 Bash 中,如何在字符串中插入 $(...)?

转载 作者:行者123 更新时间:2023-11-29 08:44:02 26 4
gpt4 key购买 nike

我正在尝试编写一个 Bash 脚本,该脚本在我的事件站点的数据库上执行 mysqldump,然后将转储添加并提交到 Git 存储库。这是我目前所拥有的(存储在由 crontab 条目调用的 .sh 文件中):

/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database | gzip > /var/www/site/backup/database.sql.gz
cd var/www/site/backup && git add *
cd var/www/site/backup && git commit -m 'Database $(date +%a %H:%M %h %d %Y)'

我的 crontab 条目如下所示:

0,20,40 8-22 * * * /var/www/site/backup/script.sh

我可以看到这个脚本确实转储了数据库,但没有将文件添加或提交到 Git。有什么我想念的吗?


后来我进行了以下更改并且提交有效:

cd /var/www/site/backup && /usr/bin/git add *
cd /var/www/site/backup && /usr/bin/git commit -m 'Database $(date +%a %H:%M %h %d %Y)'

但是,不会计算日期。


最新修订,包括(大部分)建议:

/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database > /var/www/site/backup/database.sql
cd var/www/site/backup
/usr/bin/git add *
/usr/bin/git commit -m "Internal Forms Live Database Dump Stored $(date '+%a %H:%M %h %d %Y')"

最佳答案

$(...)other forms of substitutions are not interpolated in single-quoted strings .

所以如果你想计算你的日期,做

git commit -m "Database $(date '+%a %M:%H %h %d %Y')"

也就是说,整个消息字符串被双引号括起来以允许 $(...) 被插入,而 date 的参数在单引号中使它是一个参数(传递给 date)。

关于bash - 在 Bash 中,如何在字符串中插入 $(...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23655580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com