[英]Echoing date automated git commit
我正在设置一个shell脚本作为cron作业运行,它将提交并将一些定期更新的内容推送到远程存储库。 在这种情况下,在提交消息中包括日期和时间对于目标受众来说是足够的信息。
这是有问题的脚本:
#!/bin/sh
cd /Users/me/Documents/myfile/
git add .
git commit -m 'Added notes for $(date)'
git push -u origin master
这个脚本有效,但有一个障碍:提交消息字面上都说“ Added notes for $(date)
”,而不是包括提交的日期和时间。
改为使用双引号:
git commit -m "Added notes for $(date)"
使用单引号$(date)
不会展开并保留文字形式。
正如指出的在这里 :
用双引号('“')括起字符会保留引号内所有字符的字面值,但'$','
', '\\', and, when history expansion is enabled, '!'. The characters '$' and '
除外', '\\', and, when history expansion is enabled, '!'. The characters '$' and '
'在双引号中保留它们的特殊含义(参见Shell Expansions)。反斜杠只有在跟随以下字符之一时才保留其特殊含义:'$','`',''','\\'或换行。 在双引号内,将删除后跟其中一个字符的反斜杠。 没有特殊含义的字符前面的反斜杠不做修改。 双引号可以在双引号内引用,前面加一个反斜杠。 如果启用,将执行历史记录扩展,除非“!” 出现在双引号中使用反斜杠进行转义。 '!'之前的反斜杠 没有删除。在双引号中,特殊参数'*'和'@'具有特殊含义(参见Shell参数扩展)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.