0

我正在尝试制作一个 bash 脚本inotiy-tools来监视一个目录。

这是我的脚本

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/
4

2 回答 2

2

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

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

inotifywait .... |
while read line
do
    echo $line
done
于 2012-07-09T11:02:24.207 回答
0

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

于 2021-01-17T06:08:28.137 回答