Ausgaben-Verarbeitung
Die Ausgaben von Befehlen (stdout) lassen sich einfach weiterverarbeiten, indem diese einer Shell-Variablen zugewiesen werden (Command Substitution). Nachfolgende Zeilenumbrüche werden dabei entfernt.
Dazu bietet die Bash den Klassiker der Hochkommata-nach-Links (Backquote) md=`date` Version und md=$(date).
Mittels "set $md" können wir uns die durch Leerzeichen getrennte Werte in den Positionsparametern $1, $2, ..$n zugänglich machen.
> md=`date`; set $md; echo $4
14:30:28
> date ; uname; whoami
Wed Dec 8 11:31:53 CET 2010
Linux
thomas
> a=$(date ; uname; whoami); echo $a
Wed Dec 8 11:32:05 CET 2010 Linux thomas
Bei einer Verschachtelung sind die inneren Backquotes mit dem Bash- Escape-Zeichen '\' zu maskieren:
> set -x
> echo `set -- \`date\`; echo $4`
+++ date
++ set -- Wed Dec 8 11:40:31 CET 2010
++ echo 11:40:31
+ echo 11:40:31
11:40:31
Eine optimierte Version von "$(cat file)", bei der vorgängig noch der Befehl "cat" aufgeführt wird, bietet die bash mit "$(< file)".