我希望有人能帮助我。我正在使用一个脚本,当指向文件夹中的某个文件时,将在同一文件夹中生成一个 JSON 文件。以下是用于运行当前逐个文件完成的脚本的命令。
bash /path/to/script/PageBuilder.sh "/path/to/file/cvinfo"
我希望inotifywait
扫描子目录并查找每个cvinfo
文件并在该文件上执行脚本。
这是我到目前为止所尝试过的但没有运气:
psttern="cvinfo"
inotifywait -m -r -e close_write --format %w%f /mnt/m/Comics/ | while read FILENAME; do
if [[ "$FILENAME" == *${pattern}* ]]; then
bash /mnt/m/PageBuilder/PageBuilder.sh "$FILENAME";
fi
done&
目前,这只是设置手表,然后什么也没有,即使cvinfo
文件移入和移出文件夹或进行编辑等。
我对这一切的了解完全来自我们的朋友谷歌,所以我对其工作原理只有非常基本的了解。我尝试过寻找其他帖子来提供帮助,但没有一个可以解决我的问题。
我使用的是 Windows,但在 BASH 终端中运行。
答案1
在研究相关主题时偶然发现了这一点...我意识到这是一篇旧帖子,但看起来您在 shell 变量中出现了拼写错误(psttern
而不是pattern
)。
我不是一个足够的专家,不知道如果不亲自测试它会如何失败,但它可能会默默地失败(并且由于变量${pattern}
可能未初始化,因此它会为任何返回 true $FILENAME
)。