Интересно, могу ли я написать сценарий, который будет отслеживать изменение файла и выполнять какое-либо действие при обнаружении изменения.
Детальное объяснение:
Дешево и грязно:
Петля stat -c %Y file
и принять меры при изменении времени модификации.
Наверное, лучше:
Используйте службу inotify cron, чтобы следить за событиями изменения файлов и запускать действие:
/path/to/your/file IN_MODIFY /path/to/your/script $#
Взгляните на incron [1] или другой inotify-материал, чтобы запустить выполнение вашего скрипта.
[1] http://inotify.aiken.cz/?section=incron&page=about&lang=en
inotify будет правильным способом сделать это. По этому вопросу в некоторых изданиях журнала LinuxForYou есть учебные пособия.
Итак, есть сценарий, который:
1) Проверяет время модификации файла (со stat)
2) Если время модификации новее, чем при последней проверке, оно изменилось.
3) Разберите его и выполните свое действие
4) Еще поспите 1 минуту, а затем повторите попытку
Быстрый и грязный способ:
function wait_file_changed {
tail -fn0 "$1" | head -n1
}
wait_file_changed /tmp/potato