Wéi benotzen ech Break a Continue Aussoen a Shell Scripten


An dësem Artikel wäerte mir kucken wéi eng Paus ze benotzen a weider an Bash Scripten. Am Bash hu mir dräi Haaptschleifkonstruktioune (fir, während, bis). Break a weider Aussoen sinn bash agebaut a benotzt fir de Flux vun Äre Loops z'änneren. Dëst Konzept vu Paus a weider ass verfügbar a populäre Programméierungssprooche wéi Python.

$ type -a break continue

Gitt d'Loop eraus mat enger Break Statement

D'Paus Ausso wäert aus der Loop erausgoen an d'Kontroll gëtt op déi nächst Ausso an der Loop iwwerginn. Dir kënnt d'Hëllefbefehl ausféieren fir e puer Informatiounen iwwer d'Paus Ausso ze kréien.

$ help break

D'Basis Syntax vun Paus.

$ break [n]

n is optional

Huelt e Bléck op d'Beispill hei ënnen. Dëst ass eng einfach Loop déi iwwer eng Rei vu Wäerter vun 1 bis 20 an engem inkrementelle Schrëtt vun 2 iteréiert. Déi bedingungsvoll Ausso evaluéiert den Ausdrock a wann et wouer ass ($val = 9) da leeft se d'Paus Ausso an d'Loop gëtt ofgeschloss andeems déi verbleiwen Iteratiounen iwwersprangen.

#!/usr/bin/bash

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

Sprangen eng Iteratioun mat weider Ausso

Wat wann Dir net komplett aus der Loop wëllt erausgoen, awer de Block vum Code iwwersprangen wann eng gewësse Konditioun erfëllt ass? Dëst kann mat enger weider Ausso gemaach ginn. D'Fortsetzung Ausso wäert d'Ausféierung vum Codeblock iwwersprangen wann eng gewëssen Konditioun erfëllt ass an d'Kontroll gëtt zréck an d'Loop Ausso fir déi nächst Iteratioun weiderginn.

Fir Zougang zu Hëllef.

$ help continue

Huelt e Bléck op d'Beispill hei ënnen. Dëst ass datselwecht Beispill dat mir benotzt hunn fir d'Paus Ausso ze demonstréieren. Elo wann de Val op néng evaluéiert gëtt, da spréngt d'Fortsetzungserklärung all déi verbleiwen Codeblocken iwwer a passéiert d'Kontroll un d'Loop fir déi nächst Iteratioun.

#!/usr/bin/bash

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

Wann Dir de Python wousst, da Paus a weider Verhalen ass och am Python datselwecht. Awer Python bitt eng méi Loop Kontrollerklärung genannt Pass.

Pass ass wéi eng Null Ausso an den Dolmetscher liest et awer wäert keng Operatioun ausféieren. Et resultéiert einfach keng Operatioun. Bash liwwert keng ähnlech Ausso awer mir kënnen dëst Verhalen mat engem richtege Schlësselwuert oder Colon (:) emuléieren. Béid richteg a Colon si Shell agebaut a maachen keng Operatioun.

$ type -a : true

Huelt e Bléck op d'Beispill hei ënnen. Wann eng bedingt Ausso als richteg bewäert gëtt ($val = 9), da wäert déi richteg Ausso näischt maachen an d'Loop geet weider.

#!/usr/bin/bash

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

Dat ass et fir dësen Artikel. Mir géife gären Äre wäertvolle Feedback an all Tipps ze héieren.