2012-04-16 6 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

+0

Почему вы работаете что в команде AWK 'system' вместо прямого? Является ли это частью большого AWK-скрипта? –

+0

'miku' Спасибо за ссылку. 'Деннис Уильямсон' Да. Это будет частью большого скрипта awk. – Tedee12345

ответ

3

Вы можете получить pid подпроцесса bash, запросив $!. Сохраните значение awk-процесса, сон в течение 60 секунд и уничтожьте awk-процесс.

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

Это требует, чтобы запустить процесс AWK как фоновый процесс & так, что родительский контроль продолжается.

+0

Пятно на! Вы избили меня до этого ... – Alex

+0

Спасибо за ваш ответ. Но как закончить через 60 секунд, чтобы скачать файл mplayer? – Tedee12345

+0

Если вы хотите завершить 60 секунд после завершения команды, оставьте поле '&'. Таким образом, спящий режим не будет выполняться до завершения команды. – cmh

Смежные вопросы