(6 Antworten)
Vor 6 Jahren geschlossen.
Für mein erstes Bash-Skript möchte ich etwas erstellen, das mich wirklich genervt hat:Wenn ich Ordner wechsle, möchte ich, dass der Inhalt dieses Ordners automatisch angezeigt wird. Ich habe versucht, diesen folgenden Code zu ~/.bashrc hinzuzufügen:
alias go='cd; ls'
Einfach genug, dachte ich! Nicht so. Während Sie go /etc
eingeben listet tatsächlich den Inhalt von /etc auf, mein Arbeitsverzeichnis hat sich eigentlich nicht geändert, ich bin immer noch in dem, in dem ich vorher war. Wie kann ich das beheben?
Akzeptierte Antwort:
In Ihrem Beispiel go /etc
macht cd; ls /etc
. Das bedeutet zunächst cd
ändert das aktuelle Verzeichnis in Ihr Home-Verzeichnis. Dann ls /etc
zeigt den Inhalt von /etc
an .
Sie könnten erreichen, was Sie wollen, indem Sie eine Funktion wie folgt definieren:
function go() {
cd "$1" && ls
}
Oder geben Sie es einfach in der Befehlszeile in einer einzigen Zeile ein:
function go() { cd "$1" && ls; }
Dann go /etc
wird tun, was Sie wollen.
$1
bezieht sich auf den ersten Parameter, der in diesem Beispiel an den Befehl /etc
übergeben wird . Auf nachfolgende Parameter kann mit $2
verwiesen werden , $3
und so weiter.