Я очень плохо знаком с сценариями Bash, так что, может быть, я лаю не на том дереве, но вот моя текущая ситуация:
В сценарии я начинаю soffice ; преобразовать ODT в PDF
Кажется, что soffice отсоединяется от процесса сценария и уходит, чтобы заняться своим делом ... Хорошо, все в порядке; Приложения с графическим интерфейсом, как правило, делают это ...
Однако мне нужно подождать, пока новый pdf будет полностью написан, так как мой следующий шаг заключается в обработке этого нового pdf .
(Насколько я знаю) Я не могу использовать идентификатор процесса soffice, потому что он, возможно, уже был запущенным процессом до того, как мой скрипт запустился: например. soffice может быть уже открыт для нормальной работы с графическим интерфейсом для другого несвязанного документа / презентации / электронной таблицы.
Суть дела для меня заключается в том, что прежде чем я смогу продолжить, написание нового pdf должно быть завершено ...
Есть ли способ определить, когда файл больше не открыт для другого процесса в режиме «запись»? ...
источник
if [ -f test.odf ]
. (иногда сценарий bash может быть настолько загадочным ...)lsof -- /path/to/file
вместо этого попытайтесь избежатьgrep
'ing