inotifywit没有将输出管道传输到控制台



我有下面的shell脚本运行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

我有两个问题:

为什么修改后的事件注册了两次?我只更新过一次文件。为什么"测试"没有打印到我运行脚本的控制台上?

我也遇到了类似的问题。我通过重组我的while:解决了第二部分

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

最新更新