Com utilitzar les declaracions Break and Continue als scripts de Shell


En aquest article, veurem com utilitzar una pausa i continuar amb els scripts bash. A bash, tenim tres construccions de bucle principals (for, while, until). Les declaracions Break and continue estan integrades en bash i s'utilitzen per alterar el flux dels vostres bucles. Aquest concepte de break and continue està disponible en llenguatges de programació populars com Python.

$ type -a break continue

Sortiu del bucle amb una instrucció Break

La instrucció break sortirà del bucle i el control es passa a la següent instrucció del bucle. Podeu executar l'ordre help per obtenir informació sobre la instrucció break.

$ help break

La sintaxi bàsica de break.

$ break [n]

n is optional

Mireu l'exemple següent. Aquest és un bucle for senzill que itera sobre un rang de valors d'1 a 20 en un pas incremental de 2. La instrucció condicional avaluarà l'expressió i, quan sigui cert ($val = 9), executarà la instrucció break i el bucle s'acabarà saltant les iteracions restants.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
     break
  else
  echo "printing ${val}"
fi
done

Omet una iteració amb la instrucció continue

Què passa si no voleu sortir completament del bucle però saltar-vos el bloc de codi quan es compleix una determinada condició? Això es pot fer amb una declaració de continuació. La instrucció continue saltarà l'execució del bloc de codi quan es compleixi una determinada condició i el control es torni a passar a la instrucció de bucle per a la següent iteració.

Per accedir a l'ajuda.

$ help continue

Mireu l'exemple següent. Aquest és el mateix exemple que hem utilitzat per demostrar la instrucció break. Ara, quan Val s'avalua a nou, la instrucció continue saltarà tots els blocs de codi restants i passarà el control al bucle for per a la següent iteració.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      continue
  fi
  echo "printing ${val}"
done

Si coneixíeu Python, el comportament de trencar i continuar també és el mateix a Python. Però Python proporciona una declaració de control de bucle més anomenada pass.

Pass és com una instrucció nul·la i l'intèrpret la llegirà però no realitzarà cap operació. Simplement no resulta en cap operació. Bash no proporciona una declaració similar, però podem emular aquest comportament utilitzant la paraula clau o els dos punts veritables (:). Tant el veritable com els dos punts estan integrats a l'intèrpret d'ordres i no realitzen cap operació.

$ type -a : true

Mireu l'exemple següent. Quan s'avalua que una declaració condicional és vertadera ($val = 9), la declaració vertadera no farà res i el bucle continuarà.

#!/usr/bin/bash

for val in {1..20..2}
do
  If [[ $val -eq 9 ]]
  then
      true
  fi
  echo "printing ${val}"
done

Això és tot per aquest article. Ens encantaria escoltar els vostres valuosos comentaris i qualsevol consell que tingueu.