(shell, the standard command language interpreter)
Kommandos werden in der Login-Shell nacheinander aus der Datei /etc/profile und dann, falls eine der Dateien existiert, entweder aus .profile des aktuellen Verzeichnisses oder aus $HOME/.profile gelesen. Danach werden noch die Kommandos aus der Datei gelesen, deren Name durch den Wert der Shell-Variable ENV nach Parametersubstitution gegeben wird.
Syntax
sh[ option...][ datei][ argument]... |
Keine Option angegeben Eine Subshell mit der Option -s wird aufgerufen. Der zuvor aktuelle Shell-Prozess wird zum Vater der neuen Shell. Die Subshell können Sie terminalabhängig entweder mit CTRL+D oder @@d oder mit dem Kommando exit beenden. option sh interpretiert beim Aufruf die nachfolgenden Optionen und zusätzlich die Optionen, die beim eingebauten Kommando set der POSIX-Shell beschrieben sind:
Die Kommandos werden aus kommando_zeichenkette gelesen.
Ist Option -s angegeben oder fehlen datei und argument, dann liest die POSIX-Shell die Kommandos von der Standard-Eingabe und schreibt die Ausgaben auf die Standard-Ausgabe. Nur Diagnosemeldungen werden auf die Standard-Fehlerausgabe geschrieben.
Ist Option -i angegeben oder sind Standard-Eingabe und -Ausgabe mit einer Datensichtstation verbunden, dann wird eine interaktive POSIX-Shell aufgerufen. In diesem Fall wird zum einen TERM ignoriert, so dass kill 0 keine interaktive Shell beendet, und zum anderen INTR abgefangen und ignoriert, damit wait unterbrechbar ist. Auf jeden Fall wird QUIT von der POSIX-Shell ignoriert.
Mit Option -r wird eine eingeschränkte POSIX-Subshell gestartet. In dieser Shell gelten folgende Einschränkungen:
Die eingeschränkte Subshell können Sie terminalabhängig entweder mit CTRL+D oder @@d oder mit dem Kommando exit beenden.
Wurde die Option -s nicht angegeben, dafür aber datei, dann wird entsprechend dem Suchpfad nach der Shell-Prozedur datei gesucht. Für die Prozedur muss das Leserecht gesetzt sein. Falls das s-Bit für Eigentümer oder Gruppe gesetzt ist, so wird dieses ignoriert. Kommandos werden wie im Folgenden beschrieben gelesen.
Als Argumente können Sie Kommandos angeben. Der Kommandoname wird als nulltes Argument übergeben. Die Kommandos sind unten beschrieben. Wird die POSIX-Shell vom Systemaufruf exec aufgerufen und ist das erste Zeichen des nullten Arguments ein Bindestrich |
Endestatus
Normalerweise gibt die POSIX-Shell den Endestatus des letzten ausgeführten Kommandos zurück (siehe exit). Von der POSIX-Shell erkannte Fehler, wie z.B. Syntaxfehler, führen zu einem Endestatus ungleich 0. Wird die POSIX-Shell nicht-interaktiv benutzt, dann wird die Bearbeitung der Prozedur-Datei abgebrochen. Von der POSIX-Shell erkannte Laufzeit-Fehler werden durch Ausgabe des Kommandonamens und der Fehlerbedingung berichtet. Ist die Zeilennummer der Zeile mit dem fehlerhaften Kommando größer eins, dann wird nach dem Kommando- oder Funktionsnamen noch die Zeilennummer in eckigen Klammern [...] angegeben. |
Datei
/etc/profile |
Variable
Folgende Variablen wirken sich auf sh aus: FCEDIT, HISTFILE, HISTSIZE, HOME, IFS, MAIL, MAIL, MAILCHECK, MAILPATH und PATH (Beschreibung siehe Abschnitt "POSIX-Shell-Variablen und Parameter-Ersetzung"). |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos sh: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_COLLATE Legt die internationale Umgebung für die Bedeutung von Zeichenbereichen, Äquivalenzklassen und Zeicheneinheiten in Mustervergleichen fest. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien). Die Variable bestimmt außerdem, welche Zeichen als Buchstaben definiert sind sowie das Verhalten von Zeichenklassen im Mustervergleich. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Siehe auch
cat, cd, chmod, cut, echo, env, paste, stty, test, umask, vi dup(), exec(), fork(), getrlimit(), ioctl(), lseek(), pipe(), signal(), umask(), ulimit(), wait(), rand() [4] |