Dies ist der Befehl „expect_unbuffer“, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
unbuffer - Ausgabe entpuffern
ZUSAMMENFASSUNG
entpuffern Programm [ args ]
EINFÜHRUNG
entpuffern deaktiviert die Ausgabepufferung, die auftritt, wenn die Programmausgabe von umgeleitet wird
nicht interaktive Programme. Angenommen, Sie sehen sich die Ausgabe eines Fifo von . an
läuft es durch od und dann mehr.
od -c /tmp/fifo | mehr
Sie werden nichts sehen, bis eine ganze Seite der Ausgabe erstellt wurde.
Sie können diese automatische Pufferung wie folgt deaktivieren:
entpuffern od -c /tmp/fifo | mehr
Normalerweise liest unbuffer nicht von stdin. Dies vereinfacht die Verwendung von Unbuffer in einigen
Situationen. Um Unbuffer in einer Pipeline zu verwenden, verwenden Sie das Flag -p. Beispiel:
Prozess1 | entpuffern -p Prozess2 | Prozess3
VORSICHTEN
unbuffer -p scheint nicht richtig zu funktionieren, wenn ein Prozess beendet wird, der Eingaben zum unbuffer speist.
Halten:
Prozess1 | entpuffern -p Prozess2 | Prozess3
Wenn Prozess1 beendet wird, ist Prozess2 möglicherweise noch nicht beendet. Unbuffer ist nicht möglich
wissen lange auf Prozess2 warten und Prozess2 wird möglicherweise nie beendet, zum Beispiel, wenn es a . ist
Filter. Aus Gründen der Zweckmäßigkeit wird das Entpuffern einfach beendet, wenn ein EOF von einem seiner
Eingabe oder Prozess2.
Um eine Version von Unbuffer zu haben, die in allen Situationen funktioniert, wäre ein Orakel
notwendig. Wenn Sie eine anwendungsspezifische Lösung, Problemumgehungen oder handcodiertes Erwarten wünschen
vielleicht besser geeignet. Das folgende Beispiel zeigt beispielsweise, wie man grep erlaubt,
Beenden Sie die Verarbeitung, wenn die Katze zuerst fertig ist. Die Verwendung einer Katze zum Füttern von Grep wäre
erfordern im wirklichen Leben nie eine Entpufferung. Es ist lediglich ein Platzhalter für einige imaginäre
Prozess, der abgeschlossen sein kann oder nicht. Ebenso die letzte Katze am Ende der Pipeline
ist auch ein Platzhalter für einen anderen Prozess.
$ cat /tmp/abcdef.log | grep abc | Katze
abcdef
xxxabcdefxxx
$ cat /tmp/abcdef.log | Entpuffern grep abc | Katze
$ (cat /tmp/abcdef.log ; sleep 1) | Entpuffern grep abc | Katze
abcdef
xxxabcdefxxx
$
Verwenden Sie Expect_unbuffer online über die Dienste von onworks.net