Можливо, «дивитися» - це не те, чого ти хочеш. Напевно, ви хочете попросити допомоги у вирішенні своєї проблеми, а не в реалізації свого рішення! :)
Якщо ваша реальна мета - запустити дії, засновані на тому, що видно з 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
і надалі слідкуйте за файлом журналу, навіть якщо він повертається новинним журналом чи логротатом. Ви хочете використовувати це замість малих регістрів 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