Wie benutzt man - als Alias?

11

Als ich openSUSE 11.3 verwendete, waren bereits mehrere Aliase eingerichtet. Zwei, die ich oft benutzte, waren +für pushd .und -für popd. Jetzt auf Debian kann ich nicht herausfinden, wie man den zweiten erstellt. alias -=popdversucht, -=als Befehlsoption für Alias zu lesen . Ich habe versucht, Anführungszeichen (sowohl einfache als auch doppelte) zu setzen und einen Backslash vorangestellt, aber ich erhalte immer wieder Fehlermeldungen. Irgendwelche Vorschläge?

Vielen Dank

Wolf
quelle

Antworten:

12

Versuche dies:

alias -- -=popd

arbeitete zumindest für mich:

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
quelle
Danke, funktioniert perfekt. Was macht das --genau?
Wolf
4
@ Wolf: Markiert bei den meisten Befehlen --das Ende der Optionen. alles danach sind Argumente. Zum Beispiel logger foo -x barwürde "foo bar" protokollieren und -xals Option behandeln, während logger -- foo -x bares als gewöhnliches Wort in der Nachricht "foo -x bar" behandelt würde.
user1686
1
Das --zeigt an, dass in der Befehlszeile keine weiteren Optionen folgen. Die folgenden -Optionen werden nicht als Optionen interpretiert. So können Sie catDateien, die mit einem -;-)
binfalse
@grawity und @binfalse: Danke für die Erklärung, das ist sehr hilfreich! Sehr gut zu wissen.
Wolf
7

In können bashSie Funktionen erstellen, die als solche benannt sind:

+() { pushd "$@"; }
-() { popd "$@"; }
user1686
quelle
was ist $@?
Lazer
2
@Lazer: Erweitert in sh und bash $@auf alle Argumente, die der Funktion oder dem Skript gegeben wurden. Ohne Zitat funktioniert es genauso wie $*. In doppelten Anführungszeichen wird es jedoch ohne zusätzliche Aufteilung auf genau dieselben Wörter wie ursprünglich angegeben erweitert .
user1686
@Lazer: Erweitert $@sich auf alle an die Funktion übergebenen Parameter (entspricht "$1" "$2" ...). Für weitere Informationen man bashsuchen Sie nach speziellen Parametern.
André Paramés