Zum ersten Problem:
Du möchtest also den Ausgabestrom eines Befehls einmal ausgegeben haben und zum anderen
durch wc verarbeitet haben, d. h. den Ausgabestrom duplizieren. Das einzige Kommando das ich
kenn das das macht ist tee. Damit aber nicht u. U. sehr grosse TMP-Dateien entstehen kann man
sehr praktische fifo Dateien verwenden. Befehle die als Dateien fifo-Dateien übergeben bekommen
warten bis Daten durch den anfangs leeren fifo-Puffer gereicht werden.
Code:
#!/bin/bash
FIFO=/tmp/$RANDOM.fifo
mkfifo $FIFO
wc $FIFO >&2 &
ls | tee $FIFO
rm $FIFO
Das zweite Problem ist sehr einfach:
Code:
ERROR=$(ls 2>&1 >/dev/null )
Wichtig dabei ist aber das die Umlenkung von Deskriptor 2 vor der von 1 ist sonst ist auch stderr in /dev/null.
Lesezeichen