GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Beim Erstellen des ersten Bash-Skripts kann der Cd-Befehl nicht „hängen“ bleiben?

Für diese Frage gibt es hier bereits Antworten :Wie kann ich einen Alias ​​für cd und ls erstellen?

(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.


Ubuntu
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Eingabe automatisch in die Befehlszeile eingeben?

  3. Wie wird /etc/motd aktualisiert?

  4. Was ist die Verbindung zwischen den Verzeichnissen /etc/init.d und /etc/rcX.d in Linux?

  5. So richten Sie /etc/issues ein, um die IP-Adresse für eth0 anzuzeigen

So erhalten Sie die Größe eines Verzeichnisses in Linux

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Der Unterschied zwischen ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

Bash Echo Die Befehlszeile wird in der Befehlszeile selbst ausgeführt (nicht in einem Skript)?

Gui oder einfaches Bash-Skript zum Drosseln der CPU?

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen