Linux-Workshop

Shell Scripting im Admin-Alltag

14.02.2013
Von Thomas Steudten

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)".