Bash-способ следить за изменениями файлов?
Мое текущее решение заключается в использовании сторожевой собаки библиотеки python и фрагмента bash (, первоначально взятого отсюда ).
watchmedo shell-command client/js/src/templates/ proto/ --recursive
--patterns="*.soy;*.proto"
--command="echo "WATCHMEDO file changed - rebuilding"; make genfiles;"
В основном я смотрю несколько файлов шаблонов, а затем запускаю make genfiles автоматически, если один из них изменяется.
Мне интересно, есть ли способ сделать это в pure bash? Я бы не хотел, чтобы все мои разработчики зависели от этой библиотеки Python.
Я на OSX.
2 ответов:
#!/bin/bash watched_files=$@ # pass watched files as cmd line arguments if [ -z "$watched_files" ]; then echo "Nothing to watch, abort" exit else echo "watching: $watched_files" fi previous_checksum="dummy" while [ 1 ]; do checksum=$(md5 $watched_files | md5) # I use Mac so I have `md5`, in linux it's `md5sum` if [ "$checksum" != "$previous_checksum" ]; then echo "None shall pass!" # do your stuff here fi previous_checksum="$checksum" sleep 1 done
Это хороший клиент cli FAM: http://fileschanged.sourceforge.net/
Comments