Sou um novato em scripts bash e estou pesquisando esse cenário no Google há cerca de seis horas, sem sucesso. Encontrei segmentos do que preciso, mas nenhuma solução abrangente.
Aqui está o problema: preciso escrever um código que seja capaz de verificar se existem 3 arquivos ( file1.txt
, file2.csv
e file3.log
). Antes de prosseguir, porém, preciso confirmar se file3.log
a gravação foi interrompida (isso é para confirmar se o script que cria os 3 arquivos foi concluído com êxito).
verificar a existência desses arquivos parece bastante fácil usando algo como:
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
OU
Eu também estava pensando: posso evitar tudo isso juntos e apenas verificar o status de saída do script inicial? mas eu não tinha certeza porque se houvesse algum tipo de falha e os arquivos não fossem criados, isso seria um problema sério, porque a próxima parte do processo de digitalização leva cerca de 2 dias...
Desculpe se isso pode parecer uma pergunta estúpida, estou tão envolvido no buraco do Google "se-até-sair-zero-senão..." que não tenho ideia do que fazer a partir daqui.
Responder1
Para verificar se um programa nomeado ou script foi concluído, use o comando:
wait $(pgrep program-name)