Du ønsker måske at omskrive din kode, så den ser sådan ud:
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
Så du ville være opmærksom på, hvad der er blevet gjort ved at teste værdien af step
.
Derefter vil du måske indstille en trap
før while
loop udføres, således at værdien af step
ved afslutning er skrevet til en logfil:
trap "echo step=$step > log_file" EXIT
Derefter er alt hvad du skal gøre at source
logfilen i begyndelsen af scriptet, og den sidste vil fortsætte sit job, hvor det er blevet stoppet.