inotifywait не передает вывод на консоль - PullRequest
1 голос
/ 07 мая 2020

У меня есть следующий сценарий оболочки, выполняющий команду inotifywait. Я хочу выводить выводимое эхо на консоль при каждом событии изменения.

Сценарий:

#!/bin/sh
while inotifywait -e modify -r -m ./ --exclude '\.sh$'; do
  echo test
done

Когда я изменяю один файл в указанном каталоге, я получаю стандартный вывод от inotifywait :

Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
./postgres/ MODIFY postgres_test.go
./postgres/ MODIFY postgres_test.go

У меня два вопроса:

Почему измененное событие регистрируется дважды? Я обновил файл только один раз. Почему "test" не выводится на консоль, в которой я запускаю скрипт?

1 Ответ

1 голос
/ 27 июля 2020

У меня была аналогичная проблема. Я решил вторую часть путем реструктуризации моего while:

inotifywait -e modify -r -m ./ --exclude '\.sh$' |
while read E; do                      
  echo "----------------hello $E"               
done                                  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...