Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ein Shell-Skript nach dem Neustart fortgesetzt werden?

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.