unbuffer - unbuffer output
unbuffer program [ args ]
UNBUFFER(1) General Commands Manual UNBUFFER(1)
NAME
unbuffer - unbuffer output
SYNOPSIS
unbuffer program [ args ]
INTRODUCTION
unbuffer disables the output buffering that occurs when program output
is redirected from non-interactive programs. For example, suppose you
are watching the output from a fifo by running it through od and then
more.
od -c /tmp/fifo | more
You will not see anything until a full page of output has been pro-
duced.
You can disable this automatic buffering as follows:
unbuffer od -c /tmp/fifo | more
Normally, unbuffer does not read from stdin. This simplifies use of
unbuffer in some situations. To use unbuffer in a pipeline, use the -p
flag. Example:
process1 | unbuffer -p process2 | process3
CAVEATS
unbuffer -p may appear to work incorrectly if a process feeding input
to unbuffer exits. Consider:
process1 | unbuffer -p process2 | process3
If process1 exits, process2 may not yet have finished. It is impossi-
ble for unbuffer to know long to wait for process2 and process2 may not
ever finish, for example, if it is a filter. For expediency, unbuffer
simply exits when it encounters an EOF from either its input or
process2.
In order to have a version of unbuffer that worked in all situations,
an oracle would be necessary. If you want an application-specific
solution, workarounds or hand-coded Expect may be more suitable. For
example, the following example shows how to allow grep to finish pro-
cessing when the cat before it finishes first. Using cat to feed grep
would never require unbuffer in real life. It is merely a placeholder
for some imaginary process that may or may not finish. Similarly, the
final cat at the end of the pipeline is also a placeholder for another
process.
$ cat /tmp/abcdef.log | grep abc | cat
abcdef
xxxabc defxxx
$ cat /tmp/abcdef.log | unbuffer grep abc | cat
$ (cat /tmp/abcdef.log ; sleep 1) | unbuffer grep abc | cat
abcdef
xxxabc defxxx
$
BUGS
The man page is longer than the program.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | shell/expect |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Pro-
grams" by Don Libes, O'Reilly and Associates, January 1995.
AUTHOR
Don Libes, National Institute of Standards and Technology
NOTES
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://source-
forge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
Further information about this software can be found on the open source
community website at https://core.tcl.tk/expect/.
1 June 1994 UNBUFFER(1)