有时候我觉得有必要在我的git提交消息中加入一些表达性。不幸的是,bash似乎不喜欢这个。
iblue@silence ~/git/wargames $ git commit -m "Frustrating <insert object of frustration here>!"
-bash: !": event not found
使用反斜杠转义会有所帮助,但这包括提交消息中的反斜杠。
如何正确转义bash中的感叹号?
答案 0 :(得分:25)
当您将感叹号包含在单引号字符串中时,字面上会保留感叹号。
示例:
git commit -m 'Frustrating <insert object of frustration here>!'
答案 1 :(得分:6)
使用单引号来防止扩展。
答案 2 :(得分:6)
试试这个
git commit -m "Frustrating <insert object of frustration here>"'!'
如果在字符串中间那么
"hello"'!'"world"
答案 3 :(得分:2)
除了使用单引号引起惊叹之外,在大多数shell中,您还可以使用反斜杠\
对其进行转义。那是:
git commit -m "Frustrating <insert object of frustration here>\!"
但是,我个人建议通过在您的set +H
文件中添加set +o histexpand
或.bashrc
在外壳程序中添加disabling bash expansion。
如果像我一样,从未在外壳中使用bash扩展,则禁用它会允许您在任何双引号字符串中使用感叹号-不仅在提交期间,而且对于 all bash命令