Vielleicht möchten Sie Ihren Code so umschreiben, dass er so aussieht:
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
Sie würden also wissen, was getan wurde, indem Sie den Wert von step
testen .
Dann möchten Sie vielleicht eine trap
stellen vor dem while
Schleife wird ausgeführt, sodass beim Beenden der Wert von step
wird in eine Protokolldatei geschrieben:
trap "echo step=$step > log_file" EXIT
Dann müssen Sie nur noch source
die Protokolldatei am Anfang des Skripts, und das letzte wird seine Arbeit dort fortsetzen, wo es gestoppt wurde.