Du kanske vill skriva om din kod så att den ser ut så här:
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 skulle vara medveten om vad som har gjorts genom att testa värdet av step
.
Sedan kanske du vill ställa in en trap
före while
loop exekveras, så att, vid utgång, värdet på step
skrivs till en loggfil:
trap "echo step=$step > log_file" EXIT
Sedan är allt du behöver göra att source
loggfilen i början av skriptet, och den sista fortsätter sitt jobb där det har stoppats.