echo auf stderr und tee der log-Datei?
In der bash-Skript,
echo "Fehler" 1>&2 | tee-a log
wird print stderr in Bildschirm, aber keine log-Datei, wie Sie diese zur gleichen Zeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der bash-Skript,
echo "Fehler" 1>&2 | tee-a log
wird print stderr in Bildschirm, aber keine log-Datei, wie Sie diese zur gleichen Zeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Echo der text in die Protokolldatei und stderr, aber nicht stdout, versuchen Sie dies:
echo
, aber es zu tun, um dietee
Befehl funktioniert perfekt, danke!Mit dem ersten Teil
1>&2
, was Sie sagen, ist: "Umleiten von stdout zu stderr". Also die hallte Ausgabe"error"
geht auf stderr.Rohr (
|
) liest nur vonstdout
, nichtstderr
. Sotee
nichtstdin
überhaupt aus dem Rohr. Also, es hängt nichts in die log-Datei.2>&1
als richtig für diesen Zweck.echo "error" 2>&1 | tee -a log
. Jetzt sind beide stderr wird auch gehen, um stdout und Sie können sehen, sowohl auf dem Bildschirm und wird auch Anhängen zum Protokoll.stdout
. Sie haben Recht, dass2>&1
nichts mehr schreiben wird auf stderr. Aber da stdout, & stderr gehen beide auf die Konsole, die Sie nicht wirklich brauchen, zu befürchten, dass.Anzeigen sowohl stdout und stderr auf die Konsole aus und senden Sie beide streams zu einem Protokoll, die Umleitung von stderr auf stdout aus, wie unten dargestellt:
Aber standardmäßig nur die Standardausgabe weitergegeben wird in die Rohre, so dass in
tee
sieht nur das Starkbier aus derecho
, nicht stderr. stderr wird noch im terminal angezeigt.