使用内部bash脚本时,Inotifywait无法正常工作

时间:2012-07-09 10:58:56

标签: bash inotify inotify-tools

我正在尝试使用inotiy-tools创建一个监视目录的bash脚本。

这是我的剧本

while f=$(inotifywait -m -e create -q -r "/media/data2/Music/English"  --format '%f %w')
do
    echo "$f"
done

问题是当我运行上面的脚本时,它在终端上没有打印任何内容。我已经检查了inotifywait命令,它在终端上运行正常,但为什么它在我的脚本中不起作用。

终端上的

inotifywait

noob@noob:~$ inotifywait -m -e create -q -r /media/data2/Music/English  --format '%f %w'
hello /media/data2/Music/English/

2 个答案:

答案 0 :(得分:1)

问题是f=$(inotifywait...等待该命令结束,然后才给你输出。

我很少写bash,但你可以尝试:

inotifywait .... |
while read line
do
    echo $line
done

答案 1 :(得分:0)

不要在该上下文中使用 -m 开关,否则 inotifywait 命令永远不会将控制权返回到 while 循环。