一位同事正在 bash shell 脚本中尝试文件截断:从二进制文件中提取两个前字节。
以下在 BSD/OS X 上运行良好(输出为“12”)但在 Linux 上运行良好(输出为空):
echo 1234 >test
head -c2 test | tee test >/dev/null
更改head | tee
要在子外壳中运行的部件
echo 1234 >test
(head -c2 test | tee test >/dev/null)
使它也可以在 Linux 上运行。
为什么?
(特别对截断问题的解决方案不感兴趣,而是解释为什么在不同风格的操作系统上行为不同。)