Grundsätzlich möchte ich eine Anwendung im Hintergrund haben und über eine Datei verfügen, die ich für die Ausgabe anpassen kann, und eine andere, um die Eingabe umzuleiten.
Wenn dies der Fall ist, müssen wir (1) application
die Ausgabe in eine Datei senden und in eine Datei senden file
:
application >file &
Und (2) müssen wir die Ausgabe der Anwendung an den Befehl anpassen another
:
tail -f | another
Beispiel
Lassen Sie uns ein Beispiel erstellen application
und another
:
$ application() { while sleep 1; do date; done; } $ another() { grep 2017; }
Beginnen wir nun application
im Hintergrund:
$ application >file & [1] 5989
Und lass uns another
im Vordergrund laufen :
$ tail -f file | another Sat May 20 18:32:05 PDT 2017 Sat May 20 18:32:06 PDT 2017 Sat May 20 18:32:07 PDT 2017 Sat May 20 18:32:08 PDT 2017 Sat May 20 18:32:09 PDT 2017 Sat May 20 18:32:10 PDT 2017 [...clip...]
Innerhalb einer Bildschirmsitzung mit einem FIFO
Starten Sie zuerst eine Bildschirmsitzung. Dann renne:
$ mkfifo fifo $ application >fifo & [1] 8129 $ cat fifo | another Sat May 20 18:50:39 PDT 2017 Sat May 20 18:50:40 PDT 2017 Sat May 20 18:50:41 PDT 2017 Sat May 20 18:50:42 PDT 2017 Sat May 20 18:50:43 PDT 2017 Sat May 20 18:50:44 PDT 2017 Sat May 20 18:50:45 PDT 2017 Sat May 20 18:50:46 PDT 2017 [...snip...]
(Ich habe es cat fifo | another
wegen seiner Parallelität zur ersten tail -f
Version verwendet. Ist cat
hier nicht notwendig. Wir hätten es auch tun können another <fifo
.)