Jestem bardzo nowy w bash skryptach, więc być może szczekam niewłaściwe drzewo, ale oto moja obecna sytuacja:
W skrypcie uruchamiam soffice ; przekonwertować odt na pdf
Wygląda na to, że soffice odrywa się od procesu skryptu i odchodzi, by zrobić coś własnego. Dobra, w porządku; Aplikacje GUI zwykle to robią ...
Muszę jednak poczekać, aż nowy plik PDF zostanie w pełni napisany, ponieważ moim następnym krokiem jest przetworzenie tego nowego pliku pdf .
(O ile mi wiadomo) nie mogę użyć identyfikatora procesu biura, ponieważ mógł on być już uruchomiony przed uruchomieniem mojego skryptu: np. biuro może być już otwarte dla normalnej aktywności GUI dla innego niepowiązanego dokumentu / prezentacji / arkusza kalkulacyjnego.
Sedno sprawy polega na tym, że zanim będę mógł kontynuować, pisanie nowego pliku pdf musi zostać sfinalizowane ...
Czy istnieje sposób, aby ustalić, kiedy plik nie jest już otwarty dla innego procesu w trybie „zapisu”? ...
źródło
if [ -f test.odf ]
. (skrypt bash może być czasem tak tajemniczy ...)lsof -- /path/to/file
zamiast tego spróbuj uniknąćgrep
'ing