Der &
Bediener sendet einen Prozess an den Hintergrund. wie cd
kann ohne Argumente ausgeführt werden Sie es laufen und es in den Hintergrund zu schicken. Wenn Sie die Manpage nehmen:
NAME
cd - Ändern Sie das Shell-Arbeitsverzeichnis.
ZUSAMMENFASSUNG
cd
[ -L
| -P
] [ dir ]
BESCHREIBUNG
Ändern Sie das Shell-Arbeitsverzeichnis.
Ändern Sie das aktuelle Verzeichnis in DIR . Das Standard- DIR ist der Wert der HOME
Shell-Variablen.
Die Variable CDPATH
definiert den Suchpfad für das Verzeichnis, das
DIR enthält . Alternative Verzeichnisnamen in CDPATH
werden durch einen Doppelpunkt (:) getrennt.
Ein Nullverzeichnisname entspricht dem aktuellen Verzeichnis. Wenn DIR mit einem Schrägstrich ( /
) beginnt , CDPATH
wird es nicht verwendet.
Wenn das Verzeichnis nicht gefunden wird und die Shell-Option festgelegt cdable_vars
ist, wird angenommen, dass das Wort ein Variablenname ist. Wenn diese Variable einen Wert hat, wird ihr Wert für DIR verwendet .
Optionen:
-L
Das Befolgen symbolischer Links erzwingen die
-P
Verwendung der physischen Verzeichnisstruktur, ohne symbolischen Links zu folgen
Standardmäßig folgen symbolische Links wie -L
angegeben.
Beendigungsstatus:
Gibt 0 zurück, wenn das Verzeichnis geändert wird. sonst ungleich Null.
SIEHE AUCH
bash
(1)
IMPLEMENTIERUNG
GNU Bash, Version 4.1.5 (1) -Veröffentlichung (i486-pc-linux-gnu)
Copyright (C) 2009 Freie Software Foundation, Inc.
Lizenz GPLv3 +: GNU GPL Version 3 oder höher
Sie können sehen, dass die Argumente optional sind. Damit
cd &
wird als verarbeitet
cd
und dann in den Hintergrund gesendet. Wenn cd
ohne Argument aufgerufen wird, ist keine Verarbeitung erforderlich. Es geht also als "erledigt" (verarbeitet) in den Hintergrund.
Einige Informationen zu &
The Bash &
(kaufmännisches Und) sind ein integrierter Steuerungsoperator, der zum Verzweigen von Prozessen verwendet wird. Auf der Bash-Manpage heißt es: "Wenn ein Befehl vom Steuerungsoperator beendet wird &
, führt die Shell den Befehl im Hintergrund in einer Subshell aus."
Wenn Sie in einer interaktiven Shell angemeldet sind, wird dem Prozess eine Auftragsnummer zugewiesen und die untergeordnete PID angezeigt. Die unten stehende Auftragsnummer ist eins.
bash$ sleep 30 &
[1] 3586
Beachten Sie, dass beim Verzweigen eines Prozesses die untergeordnete PID in der speziellen Variablen gespeichert wird $!
bash$ echo $!
3586
Sie können den Job anhand seiner Jobnummer wie folgt beenden:
bash$ jobs
[1]+ Running sleep 30 &
bash$ kill %1
[1]+ Terminated sleep 30
bash$