Beschreibungen der Sonderbefehle

Die Bourne-Shell stellt die folgenden integrierten Sonderbefehle zur Verfügung.


Element Beschreibung
: Gibt den Rückkehrcode null zurück.
. Datei Liest die Befehle aus der angegebenen Datei, führt sie aus und kehrt zurück. Es wird keine Subshell gestartet. Die Shell verwendet den mit der Variablen PATH angegebenen Suchpfad, um das Verzeichnis mit der angegebenen Datei zu finden.
break [ n ] Fährt mit der Ausführung nach dem nächsten Ende einer for-, while- oder until-Schleife fort. Wenn Sie die Variable n angeben, fährt der Befehl break mit der Ausführung nach dem n-ten Schleifenende fort.
continue [ n ] Nimmt die nächste Iteration der Befehlsschleife for, while und until auf. Wenn Sie die Variable n angeben, wird der Befehl in der übergeordneten Befehlsschleife nth wieder aufgenommen.
cd Verzeichnis ] Wechselt vom aktuellen Verzeichnis in das angegebene Verzeichnis. Ist kein Verzeichnis angegeben, wird der Wert der Shellvariablen HOME verwendet. Die Shellvariable CDPATH definiert den Suchpfad für das angegebene Verzeichnis. CDPATH ist eine Liste mit durch Doppelpunkte voneinander getrennten Verzeichnisnamen. Ein leerer Pfadname gibt das aktuelle Verzeichnis an (das der Standardpfad ist). Der leere Pfadname wird unmittelbar nach dem Gleichheitszeichen in der Zuordnung oder zwischen begrenzenden Doppelpunkten an einer beliebigen Stelle in der Pfadliste aufgeführt. Beginnt das angegebene Verzeichnis mit einem Schrägstrich (/), verwendet die Shell den Suchpfad nicht. Andernfalls durchsucht die Shell jedes Verzeichnis in der Shellvariablen CDPATH.
Hinweis Die eingeschränkte Shell kann den Shellbefehl cd nicht ausführen.
echo Zeichenfolge .] Schreibt Zeichenfolgen in die Standardausgabe. Informationen zur Verwendung und zu Parametern sind im Abschnitt zum Befehl echo enthalten. Das Flag -n wird nicht unterstützt.
eval [ Argument .] Liest die Argumente als Eingabe für die Shell und führt die entsprechenden Befehle aus.
exec [ Argument .] Führt an Stelle der Shell den im Parameter Argument angegebenen Befehl aus, ohne einen neuen Prozess zu erstellen. Eingabe- und Ausgabeargumente können verwendet werden und, sofern keine weiteren Argumente vorhanden sind, eine Änderung der Shelleingabe oder -ausgabe bewirken. Die Verwendung dieses Befehls empfiehlt sich nicht für die Anmeldeshell.
exit [ n ] Führt zur Beendigung der Shell mit dem im Parameter n angegebenen Rückkehrcode. Wird dieser Parameter nicht angegeben, ist der Rückkehrcode der des zuletzt ausgeführten Befehls (mit der Tastenfolge Strg-D kann die Shell ebenfalls verlassen werden). Der Wert des Parameters n kann zwischen 0 und 255 (einschließlich) liegen.
export [ Name ...] Markiert die angegebenen Namen für den automatischen Export in die Umgebung von nachfolgend ausgeführten Befehlen. Wenn Sie den Parameter Name nicht angeben, zeigt der Befehl export eine Liste aller Namen an, die in diese Shell exportiert wurden. Die Namen von Funktionen können nicht exportiert werden.
hash [ -r ][ Befehl . . . ] Sucht und speichert die Position im Suchpfad jedes angegebenen Befehls. Mit dem Flag -r wird die Shell angewiesen, alle gespeicherten Positionen zu verwerfen. Wenn Sie kein Flag und keinen Befehl angeben, zeigt die Shell Informationen über die gespeicherten Befehle im folgenden Format an:
Hits   Cost   Command
  Hits gibt an, wie oft ein Befehl vom Shellprozess ausgeführt wurde. Cost ist ein Maß für die Arbeit, die erforderlich ist, um einen Befehl im Suchpfad zu finden. Command zeigt die Pfadnamen der einzelnen angegebenen Befehle. In bestimmten Fällen ist es erforderlich, dass der Speicherort eines Befehls erneut ermittelt wird, beispielsweise der Standort eines relativen Pfadnamens, wenn das aktuelle Verzeichnis wechselt. Befehle, die ausgeführt werden können, sind durch einen Stern (*) neben den Hits -Informationen gekennzeichnet. Cost wird erhöht, wenn die Neuberechnung durchgeführt wird.
pwd Zeigt das aktuelle Verzeichnis an. Eine Beschreibung der Befehlsoptionen finden Sie in der Beschreibung des Befehls pwd .
read [ Name ...] Liest eine Zeile aus der Standardeingabe. Ordnet dem ersten Parameter Name das erste Wort dieser Zeile zu, dem zweiten Parameter Name das zweite Wort usw. Verbleibende Wörter werden dem letzten Parameter Name zugeordnet. Dieser Befehl gibt den Wert 0 zurück, sofern er kein Dateiendezeichen findet.
readonly [ Name ...] Markiert die im Parameter Name angegebenen Namen als schreibgeschützt. Die Werte des Namens können nicht zurückgesetzt werden. Ist kein Name angegeben, wird mit dem Befehl readonly eine Liste aller schreibgeschützten Namen angezeigt.
return [ n ] Bewirkt, dass eine Funktion mit einem Rückgabewert von n beendet wird. Wenn Sie die Variable n nicht angeben, gibt die Funktion den Status des letzten Befehls zurück, der in dieser Funktion ausgeführt wurde. Dieser Befehl gilt nur für die Ausführung in einer Shellfunktion.
set [ Flag [ Argument ]...] Setzt eines oder mehrere der folgenden Flags:
-A
Markiert alle Variablen, für die eine Zuordnung vorgenommen wurde, zum Export. Ist die Zuordnung dem Befehlsnamen vorangestellt, ist das Exportattribut nur für die Ausführungsumgebung dieses Befehls gültig, sofern die Zuordnung keinem der integrierten Sonderbefehle vorangeht. In diesem Fall bleibt das Exportattribut auch nach der Ausführung des integrierten Befehls persistent definiert. Ist die Zuordnung keinem Befehlsnamen vorangestellt, oder ist die Zuordnung das Verarbeitungsergebnis des Befehls getopts oder read, bleibt das Exportattribut gültig, bis die Variable inaktiviert wird.
-E
Beendet die Ausführung unverzüglich, wenn die folgenden Bedingungen alle für einen Befehl zutreffen:
  • Der Rückgabewert des Befehls ist größer als 0 (null).
  • Der Befehl ist kein Teil der zusammengesetzten Liste eines while-, until- oder if-Befehls.
  • Der Befehl wurde nicht mit AND- oder OR-Listen getestet.
  • Es handelt sich nicht um eine Befehlskette, der das reservierte Wort ! (Ausrufezeichen) vorangestellt ist.
-F
Inaktiviert die Dateinamensubstitution.
-H
Sucht und merkt sich die Befehle, die in Funktionen aufgerufen werden, während diese Funktionen definiert werden. (Normalerweise werden diese Befehle lokalisiert, wenn die Funktion ausgeführt wird (siehe Befehl hash ).)
-k
Übernimmt alle Schlüsselwortparameter in die Umgebung eines Befehls und nicht nur die, denen ein Befehlsname vorausgeht.
-N
Liest Befehle, führt sie aber nicht aus. Verwenden Sie das Flag -n, um Fehler in der Syntax des Shell-Scripts zu suchen.
-T
Beendet die Ausführung nach dem Lesen und der Ausführung eines einzigen Befehls.
-u
Behandelt eine nicht gesetzte Variable als Fehler und bricht die Ausführung bei der Variablensubstitution unverzüglich ab. Eine interaktive Shell wird nicht beendet.
-v
Zeigt die Shelleingabezeilen an, wenn sie gelesen werden.
-x
Zeigt Befehle und ihre Argumente an, bevor sie ausgeführt werden.
Ändert keines der Flags. Dies ist nützlich, wenn der positionsgebundene Parameter $1 auf eine Zeichenfolge gesetzt wird, die mit einem Minuszeichen (-) beginnt.
 

Die Verwendung eines Pluszeichens (+) an Stelle eines Minuszeichens (-) hebt die Definition von Flags auf. Diese Flags können auch in der Shellbefehlszeile angegeben werden. Die Sondervariable $- enthält den aktuellen Satz von Flags.

Jedes Argument für den Befehl set wird zu einem positionsgebundenen Parameter und wird der Reihenfolge $1, $2, ...usw. zugeordnet. Sind keine Flags oder Argumente angegeben, werden mit dem Befehl set alle Namen und Werte der aktuellen Shellvariablen angezeigt.

shift [n] Verschiebt Befehlszeilenargumente nach links, d. h. ordnet die Werte der positionsgebundenen Parameter erneut zu, indem der aktuelle Wert von $1 gelöscht wird und $2 der Wert von $1, $3 der Wert von $2 usw. zugeordnet wird. Wenn es mehr als 9 Befehlszeilenargumente gibt, wird das 10. Argument $9 zugewiesen und die verbleibenden sind noch nicht zugewiesen (bis nach einem weiteren shift-Befehl). Sind neun oder weniger Argumente vorhanden, inaktiviert der Befehl shift den positionsgebundenen Parameter mit der höchsten Nummer, der einen Wert hat.

Der positionsgebundene Parameter $0 wird nie verschoben. Der Befehl shift n ist eine verkürzte Schreibweise, mit der die Anzahl n der aufeinanderfolgenden Verschiebungen angegeben wird. Der Standardwert des Parameters n ist 1.

test Ausdruck | [ Ausdruck ] Wertet bedingte Ausdrücke aus. Eine Beschreibung der Flags und Parameter für Befehle ist im Abschnitt zum Befehl test enthalten. Das Flag -h wird vom integrierten Bourne-Shellbefehl test nicht unterstützt.
times Zeigt die aufgelaufenen Benutzer- und Systemzeiten für Prozesse an, die von der Shell ausgeführt wurden.
trap [ Befehl ] [ n ] . . .  Führt den im Parameter Befehl angegebenen Befehl aus, wenn die Shell das bzw. die im Parameter n angegebenen Signal(e) empfängt. Die Befehle trap werden in der Reihenfolge der Signalnummern ausgeführt. Jeder Versuch, einen Trap für ein Signal zu setzen, das beim Starten der aktuellen Shell ignoriert wurde, ist wirkungslos.
Anmerkung: Die Shell durchsucht den Parameter Befehl einmal, wenn der Trap gesetzt ist, und erneut, wenn der Trap ausgeführt wird.
Wenn Sie keinen Befehl angeben, werden alle mit dem Parameter n angegebenen Traps auf die aktuellen Werte zurückgesetzt. Wird eine leere Zeichenfolge angegeben, wird dieses Signal von der Shell und den aufgerufenen Befehlen ignoriert. Wenn der Parameter n gleich 0 (null) ist, wird der angegebene Befehl beim Verlassen der Shell ausgeführt. Wenn Sie weder einen Befehl noch ein Signal angeben, wird mit dem Befehl trap eine Liste der Befehle angezeigt, die den einzelnen Signalnummern zugeordnet sind.
type [Name ...] Zeigt für jeden angegebenen Namen an, wie die Shell ihn als Befehlsnamen interpretieren würde.
ulimit [-HS] [ -c | -d | -f | -m | -r | -s | -t |-u] [Grenzwert] Zeigt zugeordnete Shellressourcen an oder passt diese an. Die Einstellungen der Shellressource können einzeln oder als Gruppe angezeigt werden. Standardmäßig werden die veränderlichen Ressourceneinstellungen als Gruppe angezeigt.

Die Einstellung der Shellressourcen ist abhängig von der in der aktuellen Shell verwendeten Benutzer-ID. Die unveränderlichen Einstellungen einer Ressource können nur von Root festgelegt werden. Beim Versuch, die unveränderlichen Ressourceneinstellungen über eine andere Benutzer-ID festzulegen, wird ein Fehler ausgegeben. Standardmäßig werden von Root sowohl die unveränderlichen als auch die veränderlichen Grenzwerte einer bestimmten Ressource festgelegt. Daher ist bei der Verwendung der Flags -S, -H oder des Standard-Flag für die Festlegung der Grenzwerte durch Root Vorsicht geboten. Andere Benutzer als Root können nur die veränderlichen Grenzwerte einer Ressource festlegen. Wurde für einen Grenzwert von einem anderen Benutzer als Root ein niedrigerer Wert angegeben, kann dieser Wert nicht wieder erhöht werden; auch nicht auf den ursprünglichen Grenzwert des Systems.

Zum Festlegen einer Ressourcengrenze wählen Sie das entsprechende Flag und den Grenzwert (eine ganze Zahl) für die neue Ressource aus. Ressourcengrenzen können nur nacheinander definiert werden. Sind mehrere Ressourcen-Flags angegeben, erhalten Sie unbestimmte Ergebnisse. Standardmäßig wird durch Eingabe des Befehls ulimit und nur eines neuen Werts in der Befehlszeile die Dateigröße der Shell festgelegt. Die Angabe des Flags -f ist optional.

Folgende Flags können mit dem Befehl ulimit angegeben werden:

-c
Das Basiselement für die Shell wird festgelegt oder angezeigt.
-d
Das Datensegment für die Shell wird festgelegt oder angezeigt.
-F
Die Dateigröße für die Shell wird festgelegt oder angezeigt.
-H
Die unveränderliche Ressourcengrenze wird festgelegt oder angezeigt (nur Root).
-m
Der Speicher für die Shell wird festgelegt oder angezeigt.
-r
Die maximale Anzahl Threads pro Prozess wird festgelegt oder angezeigt.
-s
Das Stapelsegment für die Shell wird festgelegt oder angezeigt.
-S
Die veränderliche Ressourcengrenze wird festgelegt oder angezeigt.
-T
Die maximale CPU-Zeit für die Shell wird festgelegt oder angezeigt.
-u
Die maximale Anzahl Prozesse pro Benutzer wird festgelegt oder angezeigt.
umask [nnn] Legt Dateiberechtigungen fest. Beim Erstellen einer Datei bestimmt dieser Wert zusammen mit den Berechtigungen des erstellenden Prozesses die Berechtigungen der Datei. Der Standardwert ist 022. Ist kein Wert eingegeben, zeigt der Befehl umask den aktuellen Wert an.
unset [Name . .] Löscht die entsprechende Variable oder Funktion für jeden im Parameter Name angegebenen Namen. Die Shellvariablen PATH, PS1, PS2, MAILCHECK und IFS können nicht inaktiviert werden.
wait [n] Wartet auf die Beendigung eines untergeordneten Prozesses, dessen Prozessnummer im Parameter n angegeben ist, und meldet dessen Exit-Status. Wird der Parameter n nicht angegeben, wartet die Shell auf alle momentan aktiven Prozesse und gibt den Rückgabewert null (0) aus.