小编lis*_*el1的帖子

将长标准输出输入tee命令有时会导致截断

在几个示例中,我可以看到tee不会等待stdout完成,这会导致一些错误的行为。

第一个示例:
seq 50000|tee >(wc) >(head -2) >/dev/null
将输出:

                1
                2
  12773   12774   65536
Run Code Online (Sandbox Code Playgroud)

代替

                1
                2
  50000   50000  288894
Run Code Online (Sandbox Code Playgroud)

第二个示例:
cat f.txt|grep abc|tee f.txt >/dev/null
在此示例中,仅当文件较小时,文件更新才有效,但是如果文件较长,则有时tee会在cat完成之前开始写入,并且文件更新仅在第一个文件中有效“猫”过渡。

您可以说tee仅用于重定向到文件,但我也看到tee的用法。
我知道小便命令没有此错误,但是没有人知道解决办法让tee等待吗?
谢谢 :-)

linux bash shell tee

4
推荐指数
1
解决办法
62
查看次数

标签 统计

bash ×1

linux ×1

shell ×1

tee ×1