wie man $ 1 in einem Alias ​​mit zwei Argumenten richtig benutzt

7

Ich muss eine Reihe von Dateien vergleichen und möchte den Befehl nicht ständig an zwei Stellen ändern. Also möchte ich einen Alias ​​in Bash erstellen.

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

damit ich bekommen kann

gvimdiff res.tex dir/res.tex

nur durch tippen

gd res.tex
kirill_igum
quelle

Antworten:

13

Sie können Aliase nicht auf diese Weise verwenden, Sie können jedoch eine Funktion definieren, die dieselbe Aktion ausführt.

function gd() {
    gvimdiff $1 dir/$1
}
Wuffers
quelle
Gibt es überhaupt einen Befehl in einer CLI?
kirill_igum
4
Das ist ein einziger Befehl.
Ignacio Vazquez-Abrams
Also habe ich "function gd () {gvimdiff $ 1 dir / $ 1;}" ausgeführt, aber wenn ich es ausführe: "gd res.tex", erhalte ich als Ausgabe den Inhalt von "dir". Habe ich etwas verpasst?
kirill_igum
'function gd () {gvimdiff $ 1 dir / $ 1; } 'arbeitete danke
kirill_igum
Ja, kein Problem! Froh, dass ich Helfen kann!
Wuffers
4

Aliase funktionieren nicht so. Sie sollten in der Lage sein, die Historiensubstitution zu verwenden (z. B. !!:1) ( nein, basherlaubt das nicht ) oder stattdessen eine Funktion zu definieren .

Geekosaurier
quelle
Kannst du einen Link vorschlagen, damit ich mehr darüber erfahren kann? googeln hat mir nicht viel gebracht
kirill_igum