oder „Wie leite ich den Output nach /dev/null?“
Umleiten der Standardausgabe und Standardfehlerausgabe
Mit diesem Konstrukt können sowohl die Standardausgabe (file descriptor 1) als auch
die Standardfehlerausgabe (file descriptor 2) in die
Datei umgeleitet werden, deren Name die Erweiterung von word ist.
Es gibt zwei Formate für die Umleitung der Standardausgabe und der Standardfehlerausgabe:
&>word
und
>&word
Von den beiden Formen wird die erste bevorzugt. Diese ist semantisch gleichbedeutend mit
>word 2>&1
Beispiel
$> script.sh &> /dev/null
Seit wann ist es so, dass &> als ein Äquivalent zu 2>&1, was ja deutlich länger ist, eingesetzt werden kann?
Wenn man im Internet etwas von „ja früher ging das nicht“ liest, wird sich auf den Zeitraum vor 1996 und der Einführung von Bash 2.0 bezogen. Mit Bash 2.0 ist die Kurzschreibweise als Erweiterung, quasi als Feature, hinzugekommen. POSIX-/sh-Shells (dash, ksh, etc.) sollen nicht über diese Erweiterung verfügen. Manche moderne Zsh haben das als eigenes Feature, aber standardisiert ist es nicht.
Damit ist klar, dass ich nur im Falle der Notwendigkeit maximaler Portabilität (POSIX-Skripte) auf die lange Schreibweise zurückgreifen muss. Ich schätze die Wahrscheinlichkeit für so ein Szenario aber als „äußerst gering“ ein.
Aber: es ist gut zu wIssen!