Генерировать вывод только в том случае, если другая команда уже сгенерировала вывод

Пользователь fanotify может изменить файл до того, как к нему обратится приложение. Но этого не происходит через fanotify. Вы получаете доступ и изменяете фактический файл, вы не представляете другое представление для приложения.

Когда вы получаете события разрешений через fanotify, операция доступа к файлу остается заблокированной до тех пор, пока вы не ответите на интерфейс fanotify. Пока приложение заблокировано, вы можете делать все, что хотите, в том числе читать и изменять файл, к которому приложение хотело получить доступ. После того, как вы отправили ответ на событие разрешения fanotify, предполагая, что это положительный ответ, приложение получит доступ к файлу и найдет его в состоянии, которое вы, возможно, изменили.

Обратите внимание, что толькоopenaccess)запускают события разрешения, а не readи write. Таким образом, с fanotify вы можете перехватить открытие файла, но вы можете только контролировать последующий доступ к данным файла.

0
05.09.2020, 21:30
1 ответ

Вы можете поместить любую часть своего кода в $(...)для захвата вывода вместо того, чтобы записывать его в стандартный вывод.

Например:

OUT="$(
  for i in 1 2 3; do
    echo "updated $i"
  done
)"
if [[ "$OUT" == *"updated"* ]]; then
  echo "$OUT"
fi

Примечание :используйте двойные квадратные -скобки [[]]и простой оператор сравнения (, т.е.==)

0
18.03.2021, 23:07

Теги

Похожие вопросы