iniciando novamente o processo mais recente no loop se uma condição específica não for atendida

0
for (( j=1; j <= i; j++ ))
do
# process something as sequential within loop #
if [ ! -f specific_file_$id ]; then
echo " Necessary File not found! "
echo " starting the current process again for the last time "

fi
done

Nesse loop, se specific_file_$id (w.r.t loop step) não for criado após o processo, será necessário repetir o processo relacionado dentro do loop pela última vez. Se o processo repetido ainda não puder criar o arquivo, devo ir para o próximo processo dentro do loop. Isso é possível?

    
por deepblue_86 13.10.2016 / 12:20

1 resposta

2

Para tentar responder à sua pergunta, seguindo seus comentários, provavelmente você poderia incluir o processo que deseja repetir na declaração if , isso obviamente depende do que esses processos estão fazendo:

for (( j=1; j <= i; j++ ))
do
# process something as sequential within loop #
if [ ! -f specific_file_$id ]; then
echo " Necessary File not found! "
echo " starting the current process again for the last time "
# process responsible for the creation of specific_file_$id #
fi
done

Como a instrução if só é acionada se o arquivo não existir, você pode repetir a parte do processo responsável pela criação do arquivo, isso usará qualquer variável definida dentro daquela iteração específica. Quando a instrução if for concluída, o loop for continuará em sua próxima iteração, todos os outros arquivos que não forem criados serão tratados da mesma maneira.

    
por Arronical 13.10.2016 / 12:34