请看下面的命令:
bash -c "echo x; cat 1" | tee 1。
我的理解是,它将分叉到新的shell,写入xstdout,写入file 1 not foundstderr,退出并将控制权返回给父进程,以及写入xstdout和1。因此,我希望最终输出为x,并且该文件1正好包含string x。
然而,这种情况并非如此。实际上,文件1通常包含的至少两个实例x,有时包含数千行x。在运行命令一万次的批处理测试中,x写入文件的s 的平均数为52.3,中位数为1。什么概率分布可以模拟这种行为?我怀疑它是有条件的几何形状,否则是统一的。
根据此处的有限测试,
—
雷南'18
x写入文件的s 的平均数量为4.35。我想这将在很大程度上取决于机器负载。
tee在打开文件进行cat读取之前已经打开了文件进行写入x,则文件中可能会有很多-es。在这种情况下,只要cat读取速度快于tee写入速度,“循环”就会结束,到达文件末尾。