把所有论据都包括在尖锐之后

时间:2017-10-25 13:45:10

标签: bash

我有这样的功能:

function gcm {
  git commit -m "$*"
}

它允许我做gcm my commit message进行提交。当我必须做gcm my commit message #issue-number之类的事情时,就会出现问题。它考虑了#作为评论之后的所有内容。

我完全理解,但有没有办法在提交消息中包含锐利?

我知道我可以在提交消息周围添加引号,但我也知道我会忘记很多次。

1 个答案:

答案 0 :(得分:4)

这不是git问题;您必须以某种方式引用#,以防止shell在#运行git之前将gcm my commit message \#issue-number 作为评论放弃:

gcm

出于这个原因,你应该简单地引用预期的消息以防止任何shell解释,并写gcm () { git commit -m "$1" } gcm "my commit message #issue-numer" 来接受一个参数,即预期的消息。

git

您可能在提交消息中包含许多其他要求转义的字符,因此您也可以引用所有字符并将消息作为单个参数传递。在整个预期消息中,一对引号比多个反斜杠(或引号对)更容易记住。

您正在bash投放bash:了解如何正确使用interactive_comments

您可以停用$ echo foo #bar foo $ shopt -u interactive_comments $ echo foo #bar foo #bar 选项:

#

但此解决了需要转义{{1}}的问题;它不会对分号,感叹号,路径名生成或其他需要转义的字符做任何处理。