我正在编写一个 shell 脚本,使用 crontab 自动将备份推送到 git。如何将当前日期和时间放入提交消息中。这是我的脚本:
cd /var/www/html/myweb
php bin/magento setup:backup --code --media --db
cp /var/www/html/myweb/var/backups/* /home/myweb/backups/myweb/backups/
cd /home/myweb/backups/myweb
git add .
git commit -m "date +"%D %T""
git push
答案1
您可以使用命令替换获取脚本运行的当前日期和时间:
git commit -m "$(date +"%D %T")"
或者,你可以将date
的输出保存在变量中,例如,如果你想捕获脚本运行的时间开始在,添加作为第一个命令例如
timestamp=$(date +"%D %T")
并在稍后使用它,例如:
git commit -m "$timestamp: Backup"
如果这确实是你的整个脚本,请记住添加一个舍邦作为第一行。我总是尽量cd
在脚本中避免这种情况,而是给出完整路径,最后但并非最不重要的是,如果将长路径存储在变量中,它有助于保持代码干净且易于理解:
#!/bin/bash
path1=/var/www/html/myweb
path2=/home/myweb/backups/myweb
php "$path1/bin/magento" setup:backup --code --media --db
cp "$path1/var/backups/*" "$path2/backups/"
git add "$path2"
git commit -m "$(date +"%D %T")"
git push
~
请注意,这样做时不能在路径中使用,因为变量会被扩展后波浪符号,您可以使用$HOME
。