假设我有:
alias gg="git grep"
然后像:
gg "int x"
有效,但
gg int x
得到投诉。有没有办法在gsh中将gg重写为函数,以便它在gg之后获取所有参数,并将它们填充到字符串中?
谢谢!
答案 0 :(得分:58)
gg() { git grep "$*"; }
答案 1 :(得分:4)
对于您的特定用例,这是一个坏主意。 git-grep
期待单个arg 模式。您正试图让shell将您的空间(int和x之间)视为模式的一部分。当您尝试类似:gg foo.*bar
或shell可能解释的各种其他内容时,这会很快崩溃。所以gg
之后的所有内容都应该被引用。这就是git grep int x
也不起作用的原因:fatal: ambiguous argument 'x': unknown revision or path not in the working tree...
如果您认为gg
是值得的击键保护程序,那么您应该保持与git-grep
期望的一致的arg。你原来的别名对此没问题。并继续单引号或双引引您的模式,就像您使用任何其他正则表达式接受命令一样。