Может быть, "смотреть" - это не то, что вы хотите. Вы, вероятно, хотите обратиться за помощью в решении вашей проблемы, а не в реализации вашего решения! :)
Если ваша реальная цель - инициировать действия на основе того, что видно из команды tail
, то вы можете сделать это как часть самого хвоста. Вместо того, чтобы запускать «периодически», как это делает watch
, вы можете запустить свой код по требованию .
#!/bin/sh
tail -F /var/log/somelogfile | while read line; do
if echo "$line" | grep -q '[Ss]ome.regex'; then
# do your stuff
fi
done
Обратите внимание, что tail -F
будет продолжать следовать за файлом журнала, даже если он будет повернут новостным журналом или logrotate. Вы хотите использовать это вместо строчных букв tail -f
. Проверьте man tail
для деталей.
Тем не менее, если вы действительно хотите периодически запускать команду, другие предоставленные ответы можно превратить в короткий сценарий оболочки:
#!/bin/sh
if [ -z "$2" ]; then
echo "Usage: $0 SECONDS COMMAND" >&2
exit 1
fi
SECONDS=$1
shift 1
while sleep $SECONDS; do
clear
$*
done