如果未满足特定条件,则重新启动循环内的最新流程

如果未满足特定条件,则重新启动循环内的最新流程
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

在这个循环中,如果specific_file_$id(wrt loop step)在处理后没有创建,我需要最后一次重复循环中的相关过程。如果重复的过程仍然无法创建文件,我应该转到循环中的下一个过程。这可能吗?

答案1

为了尝试回答您的问题,根据您的评论,您可能需要在声明中包含您想要重复的过程if,这当然取决于这些过程正在做什么:

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

由于该if语句仅在文件不存在时触发,因此您可以重复负责文件创建的流程部分,这将使用在该特定迭代中设置的任何变量。语句if完成后,for循环将继续进行下一次迭代,任何未创建的其他文件都将以相同的方式处理。

相关内容