Kaip naudoti pertraukos ir tęsimo teiginius „Shell“ scenarijuose


Šiame straipsnyje apžvelgsime, kaip bash scenarijuose naudoti pertrauką ir tęsti. Bash kalboje turime tris pagrindines kilpos konstrukcijas (for, while, iki). Teiginiai Pertraukti ir tęsti yra įtaisyti ir naudojami jūsų kilpų eigai pakeisti. Ši pertraukos ir tęsimo koncepcija pasiekiama tokiomis populiariomis programavimo kalbomis kaip Python.

type -a break continue

Išeikite iš ciklo naudodami pertraukos pareiškimą

Teiginys break išeis iš ciklo ir valdymas perduodamas kitam ciklo sakiniui. Galite paleisti komandą help, kad gautumėte informacijos apie break teiginį.

help break

Pagrindinė pertraukos sintaksė.

break [n]

n is optional

Pažvelkite į žemiau pateiktą pavyzdį. Tai paprastas ciklas, kuris kartojasi verčių diapazone nuo 1 iki 20 laipsniškai 2 žingsniu. Sąlyginis sakinys įvertins reiškinį, o kai jis yra true($val=9), tada jis vykdys pertraukos teiginį ir ciklas bus nutrauktas praleidžiant likusias iteracijas.

#!/usr/bin/bash

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

Praleiskite iteraciją naudodami tęstinį pareiškimą

Ką daryti, jei nenorite visiškai išeiti iš ciklo, bet praleisite kodo bloką, kai įvykdoma tam tikra sąlyga? Tai galima padaryti naudojant teiginį tęsti. Teiginys continue praleis kodo bloko vykdymą, kai įvykdoma tam tikra sąlyga, o valdymas grąžinamas į kilpos sakinį kitai iteracijai.

Norėdami pasiekti pagalbą.

help continue

Pažvelkite į žemiau pateiktą pavyzdį. Tai yra tas pats pavyzdys, kurį naudojome pertraukos teiginiui parodyti. Dabar, kai Val yra įvertintas iki devynių, sakinys continue praleis visus likusius kodo blokus ir perduos valdiklį for ciklai kitai iteracijai.

#!/usr/bin/bash

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

Jei žinojote python, tada pertraukimo ir tęsimo elgesys taip pat yra toks pat ir python. Tačiau „python“ pateikia dar vieną kilpos valdymo teiginį, vadinamą pasiekimu.

Patvirtinti yra tarsi nulinis teiginys ir vertėjas jį perskaitys, bet neatliks jokios operacijos. Dėl to paprasčiausiai nereikia operacijos. Bash nepateikia panašaus teiginio, bet galime imituoti šį elgesį naudodami tikrąjį raktinį žodį arba dvitaškį (:). Ir tiesa, ir dvitaškis yra įtaisyti apvalkale ir neatlieka jokios operacijos.

type -a : true

Pažvelkite į žemiau pateiktą pavyzdį. Kai sąlyginis teiginys įvertintas kaip true($val=9), teiginys true nieko nedarys ir ciklas bus tęsiamas.

#!/usr/bin/bash

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

Štai tiek šiam straipsniui. Norėtume išgirsti jūsų vertingus atsiliepimus ir bet kokius jūsų patarimus.