Wie man Zeitstempel hinzufügt, während stdout zu Datei in Bash umadressiert?

Ich habe ein Programm (server) und ich Suche eine Möglichkeit (script), redirect (oder besser duplizieren) alle seine stdout auf Datei, und fügen Sie die Zeitmarke für jeden Eintrag.

Ich habe einige der Forschung getan und die am weitesten, die ich bekommen konnte, war Dank Gewusst wie: hinzufügen von Zeitstempel, um die STDERR-Umleitung. Es leitet stdout aber der Zeitstempel Hinzugefügt ist die Zeit, wenn das Skript beendet:

#!/bin/bash
./server | ./predate.sh > log.txt

code von predate.sh:

#!/bin/bash
while read line ; do
    echo "$(date): ${line}"
done

Scheint es, dass die server-Ausgabe geleert wird, nach beenden des Programms.(ohne Umleitung funktioniert es einwandfrei). Auch wenn ich versuche über predate.sh auf gegebene Beispiel im thread erwähnt, es funktioniert perfekt. Ich bin mir bewusst, dass es einfach wäre das hinzufügen eines Zeitstempels zu den wichtigsten Programmen, aber ich würde eher vermeiden die Bearbeitung des Codes.

InformationsquelleAutor der Frage wondra | 2014-01-13

Schreibe einen Kommentar