Misschien wilt u uw code herschrijven zodat deze er als volgt uitziet:
while: ; do
case $step in
0) command_1 && ((step++)) ;;
1) command_2 && ((step++)) ;;
...
9) command_9 && step=0 ;;
*) echo "ERROR" >&2 ; exit 1 ;;
esac
done
U weet dus wat er is gedaan door de waarde van step
. te testen .
Dan wil je misschien een trap
. instellen voor de while
loop wordt uitgevoerd, zodat bij afsluiten de waarde van step
wordt naar een logbestand geschreven:
trap "echo step=$step > log_file" EXIT
Dan hoef je alleen nog maar te source
het logbestand aan het begin van het script, en de laatste zal zijn taak voortzetten waar hij was gestopt.