有时我会想在我的 git commit 消息中加入更多的表现力。不幸的是 bash 似乎不喜欢这样。
iblue@silence ~/git/wargames $ git commit -m "Frustrating <insert object of frustration here>!"
-bash: !": event not found
使用反斜杠转义会有所帮助,但这包括提交消息中的反斜杠。
如何正确转义 bash 中的感叹号?
有时我会想在我的 git commit 消息中加入更多的表现力。不幸的是 bash 似乎不喜欢这样。
iblue@silence ~/git/wargames $ git commit -m "Frustrating <insert object of frustration here>!"
-bash: !": event not found
使用反斜杠转义会有所帮助,但这包括提交消息中的反斜杠。
如何正确转义 bash 中的感叹号?
当您将感叹号包含在单引号字符串中时,它会按字面意思保留。
例子:
git commit -m 'Frustrating <insert object of frustration here>!'
试试这个
git commit -m "Frustrating <insert object of frustration here>"'!'
如果在字符串中间,则
"hello"'!'"world"
请改用单引号来防止扩展。
除了使用单引号表示感叹号外,在大多数 shell 中,您还可以使用反斜杠\
对其进行转义。那是:
git commit -m "Frustrating <insert object of frustration here>\!"
但是,我个人建议通过向文件中添加或来禁用shell 中的bash 扩展。set +H
set +o histexpand
.bashrc
如果像我一样,您从不在 shell 中使用 bash 扩展,禁用它将允许您在任何双引号字符串中使用感叹号 - 不仅在您的提交期间,而且对于所有bash 命令。