3


#!/bin/sh
inotifywait -qme CREATE --format '%w%f' /tmp/watch | while read f; 
do 
ln -s "$f" /tmp/other/; 
done

このスクリプトは、特定のジョブを実行しているファイルシステムイベントに反応するものを探していることがわかりました。スクリプトは完全に機能します。私が理解していないのは、fを読んでいる間の意味です。

4

1 に答える 1

5

コマンドの出力をキャプチャしてinotifywait行ごとに解析し、各行を順番にステートメントに割り当てfますwhile

その特定inotifywaitのコマンドは、ディレクトリを継続的に監視し/tmp/watch、エントリが作成されたときにフル パス名を出力します。

次に、whileループはこれらのファイル名をそれぞれ処理し、/tmp/other/ディレクトリ内にそのファイルへのシンボリック リンクを作成します。

while readの動作を示すスクリプトの例を次に示します。

pax> printf "1\n2\n3 4\n" | while read f ; do echo "[$f]" ; done
[1]
[2]
[3 4]
于 2011-03-19T15:03:08.133 に答える