Итак, я делаю простой цикл inotifywait, чтобы следить за изменениями в каталоге Bootstrap:
while inotifywait -r -q --format %w bootstrap/; do
echo "something happened"
[[ $filename == *.js ]] && uglifyjs .....
[[ $filename == *.less ]] && lessc bootstrap.less
done
Вам не нужно беспокоиться о внутренних компонентах, но я просто не могу вернуть имя файла в область bash. inotifywait echos из имени файла (с помощью аргумента формата), но как его захватить и использовать позже (в моем случае, как $filename)?
[d3 ] Если вам нужна простая короткая тестовая жгут:touch testfile
while inotifywait testfile do; echo "..."; done
И тогда вы можете просто запустить touch testfile, когда вы хотите ее запустить.
Оказывается, мне просто нужно было реструктурировать while, чтобы я захватил вывод inotifywait:
while true; do
echo "something happened"
filename=$(inotifywait -r -q --format %w bootstrap/)
[[ $filename == *.js ]] && uglifyjs .....
[[ $filename == *.less ]] && lessc bootstrap.less
done
Мне все еще интересно узнать, есть ли более чистые способы сделать это .