Come eseguire il loop per 3 volte nello script bash quando la push della finestra mobile non riesce?


9

Ho uno script bash che semplicemente docker invia un'immagine:

docker push $CONTAINER_IMAGE:latest

Voglio fare un ciclo per 3 volte quando questo non riesce. Come devo raggiungere questo obiettivo?

Risposte:


22

Usa for-loope && break:

for n in {1..3}; do
    docker push $CONTAINER_IMAGE:latest && break;
done

breakchiude il ciclo, ma viene eseguito solo quando è docker pushriuscito. Se docker pushfallisce, uscirà con errore e il ciclo continuerà.


4
Tecnicamente, OP vuole che esegua il ciclo tre volte quando fallisce . Quindi, il contatore dei loop non dovrebbe essere 4 ?
Ron John

5

Puoi anche usare:

for n in {1..3}; do
     if docker push $CONTAINER_IMAGE:latest  
     then 
          break;
     fi
done

L' thenistruzione verrà inserita solo se il comando docker ha esito positivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.