Bash Alias ​​/ Функция для передачи аргумента без предшествующего пробела - PullRequest
0 голосов
/ 26 апреля 2018

Вот что у меня в .bash_aliases:

function gga { git log --all --grep=$1; }

Вот вызов и его результат:

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="$1"; }

function gga { git log --all --grep='$1'; }

function gga { git log --all --grep="$@"; }

с точно такими же результатами.

И что я хочу, чтобы произошло:

$ git log --all --grep="remove private"
commit 1916fca1a5609cec7474b5d507fa8760d4877648
...

Что я делаю не так? Есть ли способ сделать это? AFAICT Я делаю то, что предложено в этом вопросе.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018
function gga { git log --all --grep="$@"; }

, которая была первой функцией, которую я попробовал, была правильной. Все попытки были скрыты псевдонимом.

0 голосов
/ 26 апреля 2018

Следующий код, который вы пробовали, должен работать как положено.

function gga { git log --all --grep="$1"; }

А потом назовите это так:

gga "remove private"

Если он не работает должным образом, попробуйте запустить type gga и посмотреть, соответствует ли определение функции тому, что вы определили. Это также помогает перехватывать затенение другими командами / псевдонимами и т. Д.

Должно возвращаться что-то вроде этого:

$ type gga
gga is a function
gga () 
{ 
    git log --all --grep="$1"
}
...