あなたが試すことができますstdbuf
$ stdbuf --output=L ./a | tee output.txt
(大きい)マニュアルページの一部:
-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
また、 POSIXstdbuf
ではなく、GNU-coreutilsの一部です。