我需要这样的东西:
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
发送信号。即使您确实杀死了,也不能保证脚本会终止。它只是意味着脚本将获得,以防它尝试从 读取更多内容。KILL
cat
EOF
stdin
您可能最好在脚本而不是cat
命令上设置超时。