Lesen von Daten aus einer Pipe

Datum: 2004-02-24
Quelle: suse-linux

Worum ging es?

Ein immer wiederkehrendes Problem: In einer bash laufen alle Prozesse, die nach einer Pipe gestartet werden, in einer Subshell ab. Damit kommen Variablenzuweisungen, die hier vorgenommen werden, nicht in der aufrufenden Shell an. In diesem Fall sollten die Checksummen von 2 Dateien in Variablen gepackt werden.

Code
read a b c d e f <<EOF
`cksum file1 file2 | tr '\n' ' '`
EOF
echo $a $b $c $d $e $f
Beschreibung

Das ist mal eine andere Variante, wie man per read mehrere Variablen aus einer Kommandoausgabe füllen kann. Im Beispiel wird ein HERE-Dokument genutzt. tr wird benutzt, um das Zeilenende des cksum nach jeder Datei durch ein Leerzeichen zu ersetzen, das würde sonst das Einlesen in die Variablen beenden.