Kif tuża dikjarazzjonijiet Break and Continue fi Shell Scripts


F'dan l-artikolu, se nagħtu ħarsa lejn kif tuża waqfa u tkompli fl-iskripts bash. F'bash, għandna tliet kostruzzjonijiet ewlenin tal-linja (għal, filwaqt li, sakemm). Break and continue statements huma bash builtin u użati biex ibiddlu l-fluss tal-loops tiegħek. Dan il-kunċett ta 'break and continue huma disponibbli f'lingwi ta' programmar popolari bħal Python.

$ type -a break continue

Ħruġ mill-linja bi Break Statement

Id-dikjarazzjoni tal-waqfien se toħroġ mill-linja u l-kontroll jiġi mgħoddi għad-dikjarazzjoni li jmiss fil-linja. Tista' tmexxi l-kmand tal-għajnuna biex tikseb xi informazzjoni dwar id-dikjarazzjoni tal-waqfa.

$ help break

Is-sintassi bażika tal-waqfa.

$ break [n]

n is optional

Agħti ħarsa lejn l-eżempju hawn taħt. Dan huwa sempliċi for loop li jtenni fuq firxa ta’ valuri minn 1 sa 20 f’pass inkrementali ta’ 2. Id-dikjarazzjoni kondizzjonali se tevalwa l-espressjoni u meta tkun vera ($val = 9) allura se tħaddem id-dikjarazzjoni tal-break u il-linja se tintemm taqbeż l-iterazzjonijiet li fadal.

#!/usr/bin/bash

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

Aqbeż Iterazzjoni b'Dikjarazzjoni tkompli

X'jiġri jekk ma tridx toħroġ kompletament mill-linja imma taqbeż il-blokk tal-kodiċi meta tiġi sodisfatta ċerta kundizzjoni? Dan jista' jsir b'dikjarazzjoni ta' tkomplija. Id-dikjarazzjoni continue se taqbeż l-eżekuzzjoni tal-blokka tal-kodiċi meta tiġi sodisfatta ċerta kundizzjoni u l-kontroll jiġi mgħoddi lura lid-dikjarazzjoni tal-linja għall-iterazzjoni li jmiss.

Biex taċċessa għajnuna.

$ help continue

Agħti ħarsa lejn l-eżempju hawn taħt. Dan huwa l-istess eżempju li użajna biex nuru l-istqarrija tal-waqfien. Issa meta Val jiġi evalwat għal disgħa allura d-dikjarazzjoni tkompli taqbeż il-blokki kollha tal-kodiċi li jifdal u tgħaddi l-kontroll għal for loop għall-iterazzjoni li jmiss.

#!/usr/bin/bash

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

Jekk kont taf python allura break u kompli l-imġieba hija l-istess f'python ukoll. Iżda python jipprovdi dikjarazzjoni oħra ta 'kontroll tal-linja msejħa pass.

Pass huwa bħal dikjarazzjoni nulla u l-interpretu se jaqrah iżda ma jwettaq l-ebda operazzjoni. Sempliċement jirriżulta fl-ebda operazzjoni. Bash ma jipprovdix dikjarazzjoni simili iżda nistgħu nimitaw din l-imġieba billi tuża keyword vera jew kolon (:). Kemm il-veru kif ukoll il-kolon huma mibnija fil-qoxra u ma jwettqu l-ebda operazzjoni.

$ type -a : true

Agħti ħarsa lejn l-eżempju hawn taħt. Meta dikjarazzjoni kondizzjonali tiġi evalwata bħala vera ($val = 9) allura l-istqarrija vera ma tagħmel xejn u l-linja se tkompli.

#!/usr/bin/bash

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

Dak hu għal dan l-artikolu. Nixtiequ nisimgħu l-feedback siewi tiegħek u kwalunkwe pariri li għandek.