あなたが試すことができます stdbuf
$ stdbuf -o 0 ./a | tee output.txt
manページの(大きな)部分:
-i, --input=MODE adjust standard input stream buffering
-o, --output=MODE adjust standard output stream buffering
-e, --error=MODE adjust standard error stream buffering
If MODE is 'L' the corresponding stream will be line buffered.
This option is invalid with standard input.
If MODE is '0' the corresponding stream will be unbuffered.
Otherwise MODE is a number which may be followed by one of the following:
KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.
In this case the corresponding stream will be fully buffered with the buffer
size set to MODE bytes.
ただし、これを覚えておいてください。
NOTE: If COMMAND adjusts the buffering of its standard streams ('tee' does
for e.g.) then that will override corresponding settings changed by 'stdbuf'.
Also some filters (like 'dd' and 'cat' etc.) dont use streams for I/O,
and are thus unaffected by 'stdbuf' settings.
で実行していない、で実行stdbuf
しtee
ているa
ので、のソースa
でのストリームのバッファリングを設定しない限り、これが影響することはありませんa
。
また、stdbuf
あるではない POSIXが、GNU coreutilsの-の一部。
expect
として自分自身をunbuffer
OS Xにデフォルトで含まれていないようだ