Možná budete chtít přepsat svůj kód tak, aby vypadal takto:
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
Takže byste si byli vědomi toho, co bylo provedeno testováním hodnoty step
.
Pak možná budete chtít nastavit trap
před while
smyčka se provede, takže při ukončení je hodnota step
se zapisuje do souboru protokolu:
trap "echo step=$step > log_file" EXIT
Pak vše, co musíte udělat, je source
soubor protokolu na začátku skriptu a poslední bude pokračovat ve své práci tam, kde byl zastaven.