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

Hoy*_*man 23 bash shell string-interpolation

我正在尝试编写一个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)'
Run Code Online (Sandbox Code Playgroud)

我的crontab条目如下所示:

0,20,40 8-22 * * * /var/www/site/backup/script.sh
Run Code Online (Sandbox Code Playgroud)

我可以看到这个脚本会转储数据库,但不会将文件添加或提交给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)'
Run Code Online (Sandbox Code Playgroud)

但是,日期不会计算.

编辑=================================

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

/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')"
Run Code Online (Sandbox Code Playgroud)

kos*_*tix 38

$(...)其他形式取代均不是单引号字符串插值.

因此,如果您想要计算日期,请执行此操作

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

也就是说,整个消息字符串是双引号以允许$(...)插入,而参数to date是单引号,使其成为单个参数(传递给date).