Der grundlegende Aufbau (nach weit verbreiteter Syntax) eines Kommandos sollte wie folgt aussehen:
kommandoname [-Optionen] [Argumente...]
|
Optionen werden hierbei mittels "-" eingeleitet und bestehen zumeist aus nur einem
Buchstaben.
Mehrere
Optionen können gruppiert werden ls -la
. Dem
Kommando können
beliebig viele Argumente übergeben werden. Meist
können Optionen und
Argumente in ihrer Reihenfolge vertauscht werden.
Das führende Minus zur Einleitung von Optionen ist gemäß dem Unix98-Standard.
Einige Kommandos wie (ps
,
tar
,...) verwenden darüber hinaus auch Optionen nach der
BSD-Syntax, nach der kein führendes Minus vorgeschrieben ist. Ebenfalls Verwendung finden oft die
GNU-Regeln für lange Optionen, die durch zwei führende Minus-Zeichen eingeleitet werden.
Bevor ein Kommando zur Ausführung gebracht wird, bewertet die Shell die ihr übergebene Kommandozeile. Die Shell parst dazu die Eingabe und sucht nach Zeichenfolgen mit Sonderbedeutungen. Anschließend versucht die Bash, diese Zeichenketten zu substituieren. Die Reihenfolge der Betrachtung der Argumente spielt für das Verständnis der Shell eine große Rolle. Den in der nachfolgenden Aufzählung genannten Substitutionsmechanismen wenden wir uns im Abschnitt Substitutionen zu.
{ , }
~
: Nachfolgende Buchstaben bis zum ersten /
werden als Benutzername interpretiert
(und anderes mehr...).${...}
: Ersetzung in Abhängigkeit von Bedingungen.$(...)
, `...`
: Die eingeschlossenen Kommandos werden ausgeführt
und das Konstrukt durch das Ergebnis ersetzt.$((...))
und Variablensubstitution: Arithmetische Ausdrücke werden durch ihre
Ergebnisse und Variablen durch ihren Inhalt ersetzt.<(...)
, >(...)
: Die Eingabe/Ausgabe der Prozesse
wird mit einer Named Pipe verbunden.