Break- ja Continue -lausekkeiden käyttäminen Shell-skripteissä


Tässä artikkelissa tarkastellaan, kuinka tauko ja jatka käytetään bash-skripteissä. Bashissa meillä on kolme pääsilmukkarakennetta (for, while, until). Break- ja continue-käskyt ovat sisäänrakennettuja, ja niitä käytetään muuttamaan silmukoidesi kulkua. Tämä tauon ja jatkamisen käsite on saatavilla suosituilla ohjelmointikielillä, kuten Python.

type -a break continue

Poistu silmukasta Break-lauseella

break-käsky poistuu silmukasta ja ohjaus siirtyy silmukan seuraavalle käskylle. Voit suorittaa help-komennon saadaksesi tietoja break-käskystä.

help break

Break:n perussyntaksi.

break [n]

n is optional

Katso alla olevaa esimerkkiä. Tämä on yksinkertainen for-silmukka, joka toistuu arvoalueella 1–20 2:n lisävaiheessa. Ehdollinen lauseke arvioi lausekkeen ja kun se on true($val=9), niin se suorittaa break-lauseen ja silmukka päätetään ohittaen loput iteraatiot.

#!/usr/bin/bash

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

Ohita iteraatio jatkuvalla lausunnolla

Entä jos et halua kokonaan poistua silmukasta, vaan ohittaa koodilohkon, kun tietty ehto täyttyy? Tämä voidaan tehdä jatka-lauseella. Continue-käsky ohittaa koodilohkon suorittamisen, kun tietty ehto täyttyy, ja ohjaus siirretään takaisin silmukkakäskyyn seuraavaa iteraatiota varten.

Saadaksesi apua.

help continue

Katso alla olevaa esimerkkiä. Tämä on sama esimerkki, jota käytimme break-lauseen havainnollistamiseen. Nyt kun Val-arvoksi lasketaan yhdeksän, continue-käsky ohittaa kaikki jäljellä olevat koodilohkot ja siirtää ohjauksen for-silmukalle seuraavaa iteraatiota varten.

#!/usr/bin/bash

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

Jos tiesit pythonin, tauko ja jatka -käyttäytyminen on sama myös pythonissa. Python tarjoaa kuitenkin vielä yhden silmukan ohjauskäskyn, jota kutsutaan passiksi.

Hyväksytty on kuin null-lause, ja tulkki lukee sen, mutta ei suorita mitään toimintoa. Se yksinkertaisesti johtaa siihen, ettei operaatiota suoriteta. Bash ei tarjoa samanlaista lausuntoa, mutta voimme jäljitellä tätä toimintaa käyttämällä oikeaa avainsanaa tai kaksoispistettä (:). Sekä tosi että kaksoispiste ovat kuoren sisäänrakennettuja eivätkä suorita mitään toimintoa.

type -a : true

Katso alla olevaa esimerkkiä. Kun ehdollinen-lauseke arvioidaan olevan true($val=9), true-lause ei tee mitään ja silmukka jatkuu.

#!/usr/bin/bash

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

Siinä se tälle artikkelille. Haluaisimme kuulla arvokasta palautettasi ja mahdollisia vinkkejäsi.