Скрипт bash: значение «время чтения» в простом скрипте, использующем inotifywait - PullRequest
3 голосов
/ 19 марта 2011

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

Я обнаружил, что этот скрипт ищет что-то, что реагирует на событие файловой системы, выполняющее определенную работу.Сценарий прекрасно работает, но я не понимаю, что означает чтение;

1 Ответ

4 голосов
/ 19 марта 2011

Он захватывает вывод вашей команды inotifywait и разбирает ее построчно, присваивая каждой строке f в операторе while.

Эта конкретная команда inotifywait непрерывно контролирует каталог /tmp/watch и выводит полный путь при его создании.

Цикл while, в свою очередь, обрабатывает каждое из этих имен файлов и создает символическую ссылку на него в каталоге /tmp/other/.

Вот пример сценария, показывающий while read в действии:

pax$ ( echo 1 ; echo 2 ; echo 3 4 ) | while read f
pax> do
pax> echo "[$f]"
pax> done
[1]
[2]
[3 4]
...