Mysql
 sql >> Database >  >> RDS >> Mysql

Come fare in modo che uno script Shell continui dopo il riavvio?

Potresti voler riscrivere il tuo codice in modo che assomigli a questo:

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

Quindi saresti consapevole di ciò che è stato fatto testando il valore di step .

Quindi, potresti voler impostare una trap prima del while loop viene eseguito, in modo che, all'uscita, il valore di step viene scritto in un file di registro:

trap "echo step=$step > log_file" EXIT

Quindi, tutto ciò che devi fare è source il file di registro all'inizio dello script e l'ultimo continuerà il suo lavoro dove è stato interrotto.