Mungkin "menonton" bukan yang Anda inginkan. Anda mungkin ingin meminta bantuan dalam menyelesaikan masalah Anda, bukan dalam mengimplementasikan solusi Anda! :)
Jika tujuan Anda sebenarnya adalah untuk memicu tindakan berdasarkan apa yang dilihat dari tail
perintah , maka Anda dapat melakukannya sebagai bagian dari ekor itu sendiri. Alih-alih menjalankan "secara berkala", yang watch
berfungsi, Anda dapat menjalankan kode sesuai permintaan .
#!/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
Catatan yang tail -F
akan terus mengikuti file log bahkan jika diputar oleh newsyslog atau logrotate. Anda ingin menggunakan ini, bukan huruf kecil tail -f
. Periksa man tail
detailnya.
Yang mengatakan, jika Anda benar-benar ingin menjalankan perintah secara berkala, jawaban lain yang diberikan dapat diubah menjadi skrip shell pendek:
#!/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