【发布时间】:2014-11-17 23:50:29
【问题描述】:
相关问题:
这个question 最终不需要解决方案。
此question 的解决方案不涉及timeout,但建议timeout 应在可用时用于此目的。
我的问题:
此命令不会对foo.txt 产生任何输出:
$ cat foo.sh
#!/bin/sh
sh -c "echo foo; sleep 5; echo bar" | awk '/foo/ {print $1}'
$ timeout 2 ./foo.sh > foo.txt
如果我不重定向到 foo.txt,我会看到 foo 按预期立即打印出来。
另一方面,以下代码按预期在文件foo.txt 中生成“foo”:
$ timeout 2 sh -c "echo foo; sleep 5; echo bar" > foo.txt
$ cat foo.txt
foo
有谁知道为什么会发生这种情况以及如何最好地解决它?这是一个玩具示例,但我正在运行的导致此问题的实际脚本会在命令行上产生大约 100 行输出,但如果在终止前超时,也会将 foo.txt 留空。
【问题讨论】: