使用标准输入使脚本超时

使用标准输入使脚本超时

我需要这样的东西:

timeout -k 4 cat file | myscript.sh

但我收到此错误:

timeout: invalid time interval ‘cat’
Try 'timeout --help' for more information.

我想将 stdin 传递给 myscript.sh,并在执行 4 秒后终止它。

答案1

在阅读输出后timeout --help(如您的问题中的输出所示),我发现您没有使用该timeout命令的正确参数。

该命令的格式为:timeout [OPTION] DURATION COMMAND [ARG]...

而且该-k选项也带有DURATION参数。因此使用时-k必须 DURATION參數。

因此正确的格式可能是:timeout -k 6 4 cat file | myscript.sh

不过,它不会发生太大变化。cat不会阻止信号,因此无需TERM发送信号。即使您确实杀死了,也不能保证脚本会终止。它只是意味着脚本将获得,以防它尝试从 读取更多内容。KILLcatEOFstdin

您可能最好在脚本而不是cat命令上设置超时。

相关内容