Как проверить наличие определенных имен файлов и статусов выхода? (и если не удалось, то цикл до успешного завершения)

Как проверить наличие определенных имен файлов и статусов выхода? (и если не удалось, то цикл до успешного завершения)

Я новичок в написании скриптов на bash и гуглю этот сценарий уже около шести часов, но безрезультатно. Я нашел сегменты того, что мне нужно, но не комплексное решение.

Вот в чем проблема: мне нужно написать код, который сможет проверить, что существуют 3 файла ( file1.txt, file2.csvи file3.log). Однако перед тем, как продолжить, мне нужно подтвердить, что file3.logпрекратил запись (это нужно для подтверждения того, что скрипт, создающий 3 файла, успешно завершился).

Проверить существование этих файлов кажется достаточно просто, используя что-то вроде:

if [ -f -e /path/to/file/file1.txt && /path/to/file/file2.csv && /path/to/file/file3.log]
then
# somehow check the exit status of file3.log
if [$? !=0]
#somehow loop (maybe every 5 minutes) until $?=0
done

ИЛИ

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

Извините, если это может показаться глупым вопросом, я так глубоко запутался в вопросах Google «if-until-exit-zero-inlese...», что понятия не имею, что делать дальше.

решение1

Чтобы проверить, завершена ли именованная программа или скрипт, используйте команду:

wait $(pgrep program-name)

Связанный контент