Ich habe für mich das Konstrukt...
Variante 1
Code: Alles auswählen
Befehl_1 | Befehl_2
Variante 2
Code: Alles auswählen
Befehle_2 < <(Befehl_1)
Variante 2 hat den Vorteil, dass in der Sequenz Befehl_2 Variablen gesetzt werden können, die erhalten bleiben, während bei Variante 1 diese Variablen in Befehle 2 verworfen werden.
Beispiel
Code: Alles auswählen
max_tempartur=0
get_temperaturen.sh | while read temperatur ; do
if [ $temperatur -gt $max_temperatur ] ; then
echo "Neue Maximaltemperatur gefunden: $temperatur"
max_temperatur=$temperatur
fi
done
echo "gefundene Maximaltemperatur: $max_temperatur"
Beispiel 2
Code: Alles auswählen
max_tempartur=0
while read temperatur ; do
if [ $temperatur -gt $max_temperatur ] ; then
echo "Neue Maximaltemperatur gefunden: $temperatur"
max_temperatur=$temperatur
fi
done < <(get_temperaturen.sh)
echo "gefundene Maximaltemperatur: $max_temperatur"
Im Allgemeinen ist also die Entscheidung, wie man das macht, eine Frage wo man Variablen hat, die man gerne weiter im Hauptprogramm behalten möchte. Falls das benötigt wird, ist das üblicherweise ist das eher im hinteren bzw. letzten Teil der Befehlskette, weil man ja die Kette so aufbaut, dass das hinten rausfällt, was man möchte.