2012-04-16 75 views
1

我有这样的命令:AWK - 如何在60秒后结束此命令?

awk 'BEGIN {system ("mplayer mms :// xx.xx.xx -dumpstream -dumpfile xxx.wmv")}' 

60秒后如何结束这个命令?

+0

可能重复[超时bash没有不必要的延迟]中的一个命令(http://stackoverflow.com/questions/687948/timeout-a-command-in-bash-without-unnecessary-delay) – miku 2012-04-16 20:05:39

+0

为什么你运行在AWK'system'命令中,而不是直接?它是更大的AWK脚本的一部分吗? – 2012-04-16 21:29:38

+0

'miku'谢谢你的链接。 '丹尼斯威廉姆森'是的。这将是更大的awk脚本的一部分。 – Tedee12345 2012-04-17 05:15:56

回答

3

您可以通过查询$!来获取bash子进程的pid。存储awk进程的值,休眠60秒并终止awk进程。

awk 'BEGIN {system ("mplayer mms :// xx.xx.xx -dumpstream -dumpfile xxx.wmv")}' & 
pid=$! 
sleep 60 
kill $pid 

这就要求你运行awk的过程作为后台进程&,使家长控制继续。

+0

现货!你打败了我... – Alex 2012-04-16 20:08:37

+0

谢谢你的回应。 但是如何在60秒后通过mplayer下载文件? – Tedee12345 2012-04-16 20:34:42

+0

如果您想在命令结束后60秒结束,请关闭'&'。这样,直到命令完成后,睡眠才会被执行。 – cmh 2012-04-16 20:42:49