Pode ser que "assistir" não seja o que você deseja. Você provavelmente deseja pedir ajuda para resolver seu problema, não para implementar sua solução! :)
Se seu objetivo real é acionar ações com base no que é visto no tail
comando , você pode fazer isso como parte da própria cauda. Em vez de executar "periodicamente", que é o que watch
faz, você pode executar seu código sob demanda .
#!/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
Observe que tail -F
continuará a seguir um arquivo de log, mesmo que ele seja rotacionado pelo newsyslog ou logrotate. Você deseja usar isso em vez de letras minúsculas tail -f
. Verifique man tail
para detalhes.
Dito isto, se você realmente deseja executar um comando periodicamente, as outras respostas fornecidas podem ser transformadas em um pequeno script de shell:
#!/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