如何在bash中使用`tail`和`timeout`

时间:2015-12-11 10:15:09

标签: bash

我正在尝试输出脚本的最后几行,但也会在5秒后将其剪掉。我可以轻松输出前几个

timeout 5 ./code-c|head

4 (11 - 7) 0.000003s
6 (19 - 13) 0.000018s
8 (37 - 29) 0.000020s
14 (73 - 59) 0.000022s
24 (137 - 113) 0.000024s
30 (227 - 197) 0.000031s
32 (433 - 401) 0.000038s
48 (557 - 509) 0.000044s
50 (769 - 719) 0.000051s
54 (1283 - 1229) 0.000065s

但如果我尝试

timeout 5 ./code-c|tail

我得到了

Terminated

正确的方法是什么?

1 个答案:

答案 0 :(得分:3)

问题是当code-c以非零退出状态终止时管道关闭。添加一个成功阻止它的命令

(timeout 5 ./code-c || true ) | tail

(timeout 5 ./code-c || : ) | tail