0

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/
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 に答える