Linux Ubuntu iNotify多文件夹

Linux Ubuntu iNotify多文件夹,linux,bash,inotify,Linux,Bash,Inotify,我编写了一个简短的bash脚本,为几个文件夹设置iNotify,然后调用一个Python脚本将创建的文件中的文本上传到web服务。对于列表中的第一个文件夹,该过程可以正常工作,但是对于其他文件夹,create事件似乎没有触发。我假设我的脚本结构正确。有什么想法吗?守则基本上是: #!/bin/bash inotifywait -m --format '%w%f' -e create /Folder1 | while read FILE do echo $FILE # upload

我编写了一个简短的bash脚本,为几个文件夹设置iNotify,然后调用一个Python脚本将创建的文件中的文本上传到web服务。对于列表中的第一个文件夹,该过程可以正常工作,但是对于其他文件夹,create事件似乎没有触发。我假设我的脚本结构正确。有什么想法吗?守则基本上是:

#!/bin/bash
inotifywait -m --format '%w%f' -e create /Folder1 | while read FILE
do
    echo $FILE
    # upload file
    python /Scripts/UploadFileContents.py 'PAUR' $FILE
done
inotifywait -m --format '%w%f' -e create /Folder2 | while read FILE
do
    echo $FILE
    # upload file
    python /Scripts/UploadFileContents.py 'RACH' $FILE
done
inotifywait -m --format '%w%f' -e create /Folder3 | while read FILE
do
    echo $FILE
    # upload file
    python /Scripts/UploadFileContents.py 'CDR' $FILE
done
inotifywait -m --format '%w%f' -e create /Folder4 | while read FILE
do
    echo $FILE
    # upload file
    python /Scripts/UploadFileContents.py 'CHR' $FILE
done
inotifywait -m --format '%w%f' -e create /Folder5 | while read FILE
do
    echo $FILE
    # upload file
    python /Scripts/UploadFileContents.py 'PRMS' $FILE
done

提前感谢您的帮助。

您必须在后台启动
inotifywait
脚本,因为它们会一直阻止,直到出现更改为止。

您的第一个while循环永远不会结束。 inotifywait-m是一个永远运行的命令

除此之外,inotifywait本身是阻塞的,因此将所有这些内容分解为一个循环并删除m标志也不会对您有所帮助

对您来说,最简单的解决方案是将它们分解为多个脚本

或者更理想的方法是设置一个脚本,该脚本接受一些参数,因为大部分逻辑都是重复的

您可以将/Folder1替换为$1 第二个变量是$2 然后调用脚本传递要监视的文件夹

./watch.sh /Folder1 PAUR &
./watch.sh /Folder2 RACH &

您可以制作第二个脚本,调用第一个脚本以及您要查看的所有文件夹,以便每个文件夹运行一个脚本。

我该怎么做?我当前以“nohup./scriptname&”开始脚本。定期(每隔几分钟)将文件添加到所有文件夹中。但事件仅针对注册的第一个文件夹触发。