PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit stdout und stderr Umleitung



Kolumbus
25-03-2003, 11:49
Hi, mein Ziel ist es die stdout und stderr Ausgabe jeweils in eine Datei umzuleiten und zusätzlich noch in eine Datei noch nur den stderr umzuleiten, genau da liegt im Moment mein Problem, weil ja stderr nur einmal umgeleitet werden kann.

Im Klartext will ich folgendes erreichen:

stdout+stderr -> Logfile
stderr -> Errorfile

Die Ausgabe funktioniert ja tadelos:


test2 1>Logfile 2>&1

Aber wie kann ich gleichzeitig noch ohne grösseren Aufwand 2>Errorfile mit einbringen, wichtig ist auch das die Reihenfolge der Ausgabe erhalten bleibt.

Mein Testscript, welches stdout und stderr anspricht:


#!/bin/sh
echo "testtext 1"
touch /etc/passwd
echo "testtext 2"
touch /etc/passwd
echo "testtext 3"
touch /etc/passwd
echo "testtext 4"
touch /etc/passwd
echo "testtext 5"
touch /etc/passwd

Ich hoffe jemand hat einen Tip für mich ...

Gruss
Kolumbus

phate
25-03-2003, 12:37
Hi Kolumbus,

ob Dir das nun den Aufwand wert ist, musst Du selbst entscheiden, aber theoretisch geht es so
((./deinskript.sh 3>&1 1>&2 2>&3 | tee stderr) 3>&1 1>&2 2>&3) >output 2>&1In der Datei 'stderr' befindet sich nun die stderr-Ausgabe und in 'output' stderr + stdout.

viel spass mit

Kolumbus
25-03-2003, 13:03
Danke für die schnelle Antwort, bin eben auch auf tee gestossen, aber hatte es damit noch nicht hinbekommen.

Mit deinem Beispiel geht es, wobei ich es noch etwas gekürtzt hab und so scheint es auch zu funktionieren, da brauch ich sdtout und stderr nicht wieder tauschen:


(./test.sh 3>&1 1>&2 2>&3 | tee error.log) 2>output.log 1>&2

Gruss und Dank
Kolumbus