我有一个调用两个命令的脚本:
long_running_command | print_progress
Run Code Online (Sandbox Code Playgroud)
在long_running_command
打印的进展,但我很不满意它。我正在使用print_progress
使其更好(即,我在一行中打印进度)。
问题:将管道连接到标准输出也会激活一个 4K 缓冲区,所以漂亮的打印程序什么都没有……什么都没有……什么都没有……很多……:)
如何禁用4K
缓冲区long_running_command
(不,我没有源)?
我在使用 exec 重定向所有后续命令的标准错误中找到了一个很好的解决方案。
我用的例子:
exec > >(tee $somelog) 2>&1
Run Code Online (Sandbox Code Playgroud)
...并设法使一切变得更好tee
。现在,我如何再次关闭它?