Bash Alias/Function 用于传递没有前置 space 的 arg
Bash Alias/Function for passing an arg without preceding space
这是我的 .bash_aliases:
function gga { git log --all --grep=; }
这是一个调用,其结果:
gga "remove private"
fatal: ambiguous argument 'remove private': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我也试过了
function gga { git log --all --grep=""; }
function gga { git log --all --grep=''; }
function gga { git log --all --grep="$@"; }
结果完全相同。
以及我想要发生的事情:
$ git log --all --grep="remove private"
commit 1916fca1a5609cec7474b5d507fa8760d4877648
...
我做错了什么?有没有办法做到这一点? AFAICT 我正在做
中建议的事情
您尝试的以下代码应该可以正常运行。
function gga { git log --all --grep=""; }
然后这样称呼它:
gga "remove private"
如果没有按预期运行,请尝试运行 type gga
,看看函数定义是否与您定义的相符。它还有助于捕捉其他 commands/aliases 等
的阴影
应该return像这样:
$ type gga
gga is a function
gga ()
{
git log --all --grep=""
}
function gga { git log --all --grep="$@"; }
这是我尝试的第一个功能,是正确的。所有尝试都被别名隐藏。
这是我的 .bash_aliases:
function gga { git log --all --grep=; }
这是一个调用,其结果:
gga "remove private"
fatal: ambiguous argument 'remove private': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我也试过了
function gga { git log --all --grep=""; }
function gga { git log --all --grep=''; }
function gga { git log --all --grep="$@"; }
结果完全相同。
以及我想要发生的事情:
$ git log --all --grep="remove private"
commit 1916fca1a5609cec7474b5d507fa8760d4877648
...
我做错了什么?有没有办法做到这一点? AFAICT 我正在做
您尝试的以下代码应该可以正常运行。
function gga { git log --all --grep=""; }
然后这样称呼它:
gga "remove private"
如果没有按预期运行,请尝试运行 type gga
,看看函数定义是否与您定义的相符。它还有助于捕捉其他 commands/aliases 等
应该return像这样:
$ type gga
gga is a function
gga ()
{
git log --all --grep=""
}
function gga { git log --all --grep="$@"; }
这是我尝试的第一个功能,是正确的。所有尝试都被别名隐藏。