Kuinka käyttää katkaisu- ja jatkolausekkeita Shell-skripteissä


Tässä artikkelissa tarkastelemme kuinka käyttää taukoa ja jatkaa bash-skripteissä. Bashissa meillä on kolme pääsilmukkarakennetta (for, while, kunnes). Break and jatko -lausekkeet ovat sisäänrakennettuja ja niitä käytetään silmukoiden virtauksen muuttamiseen. Tämä tauko- ja jatkokäsite on saatavana suosituilla ohjelmointikielillä, kuten Python.

$ type -a break continue

Poistu silmukasta Break-lauseella

Katkoslauseke poistuu silmukasta ja ohjaus siirretään seuraavaan silmukkaan. Voit suorittaa apua -komennon saadaksesi tietoja tauko-lauseesta.

$ help break

Taukojen perussyntaksi.

$ break [n]

n is optional

Katso alla oleva esimerkki. Tämä on yksinkertainen silmukalle, joka toistuu arvojen alueella 1 - 20 inkrementaalivaiheessa 2. Ehdollinen käsky arvioi lausekkeen ja kun se on totta ($val = 9), se suorittaa tauko-lauseen ja silmukka lopetetaan ohittamalla jäljellä olevat 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 jatkoilmoituksella

Entä jos et halua poistua kokonaan silmukasta, mutta ohitat koodilohkon, kun tietty ehto täyttyy? Tämä voidaan tehdä jatkoilmoituksella. Jatka-käsky ohittaa koodilohkon suorittamisen, kun tietty ehto täyttyy ja ohjaus siirretään takaisin seuraavan käskyn silmukka-käskyyn.

Ohjeiden käyttäminen.

$ help continue

Katso alla oleva esimerkki. Tämä on sama esimerkki, jota käytimme havainnollistamaan rikkoutumislauseketta. Kun Val on arvioitu yhdeksään, jatko-lause ohittaa kaikki jäljellä olevat koodilohkot ja siirtää ohjauksen 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, rikkoa ja jatkaa käyttäytyminen on sama myös pythonissa. Mutta python tarjoaa vielä yhden silmukan ohjauslausekkeen, jota kutsutaan passiksi.

Pass on kuin tyhjä käsky, ja tulkki lukee sen, mutta ei tee mitään toimintoa. Se ei yksinkertaisesti johda toimintaan. Bash ei anna vastaavaa lausuntoa, mutta voimme jäljitellä tätä käyttäytymistä tosi avainsanalla tai kaksoispisteellä (:). Sekä tosi että kaksoispiste ovat sisäänrakennettuja kuorta, eivätkä ne tee mitään toimintoa.

$ type -a : true

Katso alla oleva esimerkki. Kun ehdollisen lauseen arvioidaan olevan tosi ($val = 9), tosi 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

Se on tässä artikkelissa. Haluaisimme kuulla arvokasta palautettasi ja vinkkejäsi.