inotifywait not piping output to console

853 views Asked by At

I have the following shell script running a inotifywait command. I want to print the output echo to the console upon every modify event.

The script:

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

When I change one file in the specified directory, i get the standard output from 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

I have two questions:

Why is the modified event registered twice? I only updated the file once. Why is "test" not being printed to the console in which I'm running the script?

1

There are 1 answers

0
ErichBSchulz On BEST ANSWER

I had a similar issue. I resolved the second part by restructuring my while:

inotifywait -e modify -r -m ./ --exclude '\.sh$' |
while read E; do                      
  echo "----------------hello $E"               
done