Подтвердить что ты не робот

В bash, как я могу интерполировать $(...) в строке?

Я пытаюсь написать bash script, который выполняет mysqldump в моей базе данных в реальном времени, а затем добавляет и записывает дамп в репозиторий git. Вот что я до сих пор (хранящийся в файле .sh, который вызывается записью crontab):

/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

Я вижу, что этот script делает дамп базы данных, но не добавляет или не переносит файл на 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')"
4b9b3361

Ответ 1

$(...) и другие формы подстановок не интерполируются в однокасканных строках.

Итак, если вы хотите, чтобы ваша дата была рассчитана, сделайте

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

то есть вся строка сообщения имеет двойную кавычку, чтобы позволить $(...) интерполировать, в то время как аргумент date находится в одинарных кавычках, чтобы сделать его единственным аргументом (переданным в date).