我想知道是否有可能告诉bash 分别对stdout / stderr的所有调用echo或printf随后的后续调用fflush()?
echo
printf
fflush()
一种快速而又肮脏的解决方案是编写自己的printf实现,并使用它代替内置的任何实现,但是在我看来,我可能不需要这样做。
我正在编写同时运行的多个构建脚本,出于调试的需要,我 确实 需要查看它们按顺序编写的消息。
如果命令使用stdio并连接到终端,则会按行刷新它们。否则,您需要在管道http://www.pixelbeat.org/programming/stdio_buffering/中的命令上使用stdbuf之类的东西
tl; dr:而不是printf ...尝试放入脚本中stdbuf -o0 printf ..,或者stdbuf -oL printf ...
printf ...
stdbuf -o0 printf ..
stdbuf -oL printf ...