Я пишу сценарий bash, чтобы автоматически расшифровывать файл для редактирования и шифровать его после закрытия файла. Тип файла может быть любым: обычный текст, офисный документ и т.д. Я работаю на Linux Mint с Mate.
Я застрял: не могу надежно определить, был ли файл закрыт в приложении, чтобы скрипт мог приступить к его шифрованию и удалению дешифрованной версии.
Первая версия скрипта просто использовала vim с текстовыми файлами. Скрипт вызывал его напрямую и не шел дальше, пока Вим не закрылся. Теперь, когда я хочу сделать это с другими файлами, я попробовал следующее:
xdg-open: выходит сразу после вызова приложения, связанного с типом файла. Таким образом, сценарий продолжается и не приносит пользы.
Модифицированная функция xdg-open для вызова связанного приложения: запускает его внутри текущего скрипта, так что теперь я вижу выход из программы. Работает, только если приложение еще не запущено. Если это так, то новый процесс завершается, и сценарий продолжается.
Итак, что я сейчас пытаюсь сделать, так это посмотреть, как этот файл был закрыт в уже запущенном приложении. В настоящее время экспериментирую с pluma/gedit и inotifywait. Он также не работает - сразу после открытия файла он обнаруживает событие CLOSE_NOWRITE, CLOSE.
Можно ли вообще обнаружить это без специальных хуков для разных приложений? Возможно, некоторые х крючки?
Спасибо.