jak poprawnie użyć 1 $ w aliasie z dwoma argumentami

7

muszę porównać liczbę plików i nie chcę ciągle zmieniać polecenia w dwóch miejscach. więc chcę utworzyć alias w bash.

alias gd='gvimdiff $1 dir/$1'

żebym mógł dostać

gvimdiff res.tex dir/res.tex

po prostu pisząc

gd res.tex
kirill_igum
źródło

Odpowiedzi:

13

Nie możesz używać aliasów w ten sposób, możesz jednak zdefiniować funkcję do zrobienia tego samego.

function gd() {
    gvimdiff $1 dir/$1
}
Wuffers
źródło
czy można to zrobić jako pojedyncze polecenie w interfejsie CLI?
kirill_igum
4
To jedno polecenie.
Ignacio Vazquez-Abrams,
więc zrobiłem „function gd () {gvimdiff $ 1 reż / $ 1;}”, ale kiedy go uruchomię: „gd res.tex”, jako dane wyjściowe otrzymuję zawartość „dir”. przegapiłem coś?
kirill_igum
'function gd () {gvimdiff 1 $ reż / 1 $; } 'pracował, dziękuję
kirill_igum
tak, nie ma problemu! Miło, że mogłem pomóc!
Wuffers
4

Aliasy nie działają w ten sposób. Powinieneś być w stanie użyć podstawienia historii (np. !!:1) ( Nie, bashnie pozwala na to ) lub zamiast tego zdefiniować funkcję .

geekozaur
źródło
czy możesz zasugerować link, aby dowiedzieć się więcej na ten temat? Google nie dał mi wiele
kirill_igum,