Linux — многократное выполнение команды в течение определенного периода времени

#linux #bash #shell #ubuntu #centos

#linux #bash #оболочка #убунту #centos

Вопрос:

Я знаю, что делает команда watch -n. Я хотел бы сделать что-то вроде следующего:

 watch -n 5 "ls" //Do this for 30 minutes, then stop.
  

По сути, я хочу повторять команду каждые 5 секунд, а затем останавливаться по истечении 30 минут. Я пропускаю часть «остановка на 30 минут». Какую команду я должен использовать для достижения этой цели?

Спасибо.

Ответ №1:

Используйте тайм-аут:

 timeout 1800 watch -n 5 "ls" 
  

Ответ №2:

Вы можете использовать команду timeout, которая является частью coreutils, что-то вроде:

  timeout 30m watch -n 5 "ls"
  

Комментарии:

1. Обратите внимание, что существует несколько timeout версий. Если у вас нет последней версии GNU Coreutils, синтаксис и параметры могут отличаться.