Was ich versuche zu tun:Wie wird die Ausgabe eines Prozesses an den Logger-Befehl und an den Befehl head übergeben?
Starten Sie einen Prozess, der Text kontinuierlich ausgibt
Rohr die Ausgabe an zwei Befehle:
- Ein Logger Skript
- ' Kopf 'Befehl, so kann ich die ersten Zeilen die ursprüngliche Prozessausgabe speichern.
Was ich (unsuccessfuly) versucht, so weit ist:
./myProgram | tee > (myLogger log.txt) | head > firstLines.txt
Das Problem ist, dass die myProgram
Ausfahrten sobald head
beendet ist.
Auch wenn ich -i
in tee
Befehl verwende, kann ich myProgram nicht weiter laufen lassen.
Da der Logger den eingehenden Text an eine vorhandene Datei anhängen kann, funktioniert in diesem Fall die Ausführung head log.txt > firstLines.txt
nicht.
Schalten Sie die Reihenfolge um. Verwenden Sie '> (...)' für 'head' und die normale Pipe für Ihren Logger? –
Das war meine erste Vermutung, aber ich habe es versucht und das Problem bleibt bestehen. –
Nicht so elegante Lösung: Ausgabe in eine temporäre Datei, dann diese temporäre Datei an log.txt anhängen, dann Kopf temporäre Datei, dann temporäre Datei entfernen – Bartez