logo

Atkārtoti paziņojumi | Shell skripts

Cilpas paziņojumi Shell skriptēšanā: Kopā ir 3 cilpas paziņojumi, ko var izmantot bash programmēšanā

Satura rādītājs



Lai mainītu cilpas paziņojumu plūsmu, tiek izmantotas divas komandas, tās ir,

  1. pārtraukums
  2. Turpināt

To apraksti un sintakse ir šādi:

`while` paziņojums Shell skriptā operētājsistēmā Linux

Šeit komanda tiek novērtēta un, pamatojoties uz iegūto cilpu, tiks izpildīta, ja komanda tiek paaugstināta uz false, tad cilpa tiks pārtraukta ka.



#/bin/bash while  do       done>

`While` Loop ieviešana Shell skriptā.

Pirmkārt, mēs izveidojam failu, izmantojot teksta redaktoru operētājsistēmā Linux. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim looping.sh>

Looping.sh varat aizstāt ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.



chmod +x looping.sh>

#/bin/bash

a=0

# Tas ir mazāks par operatoru

#Atkārtojiet cilpu, līdz tas ir mazāks par 10

kamēr [ $a -lt 10 ]
darīt
# Drukājiet vērtības
atbalss $a
# palieliniet vērtību
a=`ekspr $a + 1`
darīts

Izvade:

masīva saraksta java šķirošana
Kamēr cilpa operētājsistēmā Linux

Kamēr cilpa operētājsistēmā Linux

Paskaidrojums:

  • #/bin/bash> : norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
  • a=0> : inicializē mainīgoa>ar vērtību 0.
  • while [ $a -lt 10 ]> : uzsāk kamēr cilpu, kas turpinās tik ilgi, kamēr vērtībaa>ir mazāks par 10.
  • do> : atzīmē cilpas korpusa sākumu.
  • echo $a> : izdrukā pašreizējo vērtībua>konsole.
  • a=> izteiksme $a + 1 : palielina vērtībua>1. Theexpr>komanda tiek izmantota aritmētiskām izteiksmēm.
  • done> : atzīmē cilpas beigas.

'for' paziņojums Shell skriptā operētājsistēmā Linux

For cilpa darbojas ar vienumu sarakstiem. Tas atkārto komandu kopu katram saraksta vienumam.
Šeit var ir mainīgā nosaukums, un no word1 līdz wordN ir rakstzīmju secības, kas atdalītas ar atstarpēm (vārdi). Katru reizi, kad tiek izpildīta cilpa for, mainīgā var vērtība tiek iestatīta uz nākamo vārdu vārdu sarakstā, no word1 līdz wordN.

Sintakse:

#/bin/bash for in  do       done>

Cilpas “for” ieviešana ar paziņojumu “break” Shell skriptā.

Pirmkārt, mēs izveidojam failu, izmantojot teksta redaktoru operētājsistēmā Linux. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim for.sh>

For.sh varat aizstāt ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x for.sh>

#/bin/bash

#Cilpas sākums

a in 1 2 3 4 5 6 7 8 9 10
darīt

# ja a ir vienāds ar 5, pārtrauciet cilpu
ja [ $a == 5]
tad
pārtraukums
būt

# Izdrukājiet vērtību
atbalss Iterācija nav $a
darīts

Izvade:

Pārtrauciet paziņojumu par Loop operētājsistēmā Linux

Pārtrauciet paziņojumu par Loop operētājsistēmā Linux

Paskaidrojums:

  • #/bin/bash>: norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
  • for a in 1 2 3 4 5 6 7 8 9 10>: ierosina for cilpu, kas atkārto vērtības no 1 līdz 10, piešķirot katru vērtību mainīgajam.a>katrā iterācijā.
  • do>: atzīmē cilpas korpusa sākumu.
  • if [ $a == 5 ]>: pārbauda, ​​vai pašreizējā vērtībaa>ir vienāds ar 5.
    • then>: atzīmē izpildāmā nosacījuma bloka sākumu, ja nosacījums ir patiess.
      • break>: iziet no cilpas, ja nosacījums ir patiess.
    • fi>: atzīmē nosacījumu bloka beigas.
  • echo 'Iteration no $a'>: izdrukā ziņojumu, kas norāda pašreizējo iterācijas numuru.
  • done>: atzīmē cilpas beigas.

Skripts izveido for cilpu, kas atkārto vērtības no 1 līdz 10. Katras iterācijas laikā tas pārbauda, ​​vai vērtībaa>ir vienāds ar 5. Ja tā ir, cilpa tiek izieta, izmantojotbreak>paziņojums, apgalvojums. Pretējā gadījumā tas izdrukā ziņojumu, norādot pašreizējo iterācijas numuru. Cilpa turpinās, līdz tā pabeidz visas iterācijas vai saskaras ar pārtraukuma paziņojumu.

Cilpas “for” ieviešana ar paziņojumu “turpināt” Shell skriptā.

Pirmkārt, mēs izveidojam failu, izmantojot teksta redaktoru operētājsistēmā Linux. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim for_continue.sh>

Varat aizstāt for_continue.sh ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x for_continue.sh>

#/bin/bash

a in 1 2 3 4 5 6 7 8 9 10
darīt

# ja a = 5, tad turpiniet cilpu un
# nepāriet uz 8. rindu

ja [ $a == 5]
tad
Turpināt
būt
atbalss Iterācija nav $a
darīts

Izvade:

turpināt paziņojumu for cilpa operētājsistēmā Linux

turpināt paziņojumu for cilpa operētājsistēmā Linux

Paskaidrojums:

  • #/bin/bash> : norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
  • for a in 1 2 3 4 5 6 7 8 9 10> : ierosina for cilpu, kas atkārto vērtības no 1 līdz 10, piešķirot katru vērtību mainīgajam.a>katrā iterācijā.
  • do> : atzīmē cilpas korpusa sākumu.
  • if [ $a == 5 ]> : pārbauda, ​​vai pašreizējā vērtībaa>ir vienāds ar 5.
    • then> : atzīmē izpildāmā nosacījuma bloka sākumu, ja nosacījums ir patiess.
      • continue> : izlaiž pārējo cilpas pamattekstu un pāriet uz nākamo iterāciju, ja nosacījums ir patiess.
    • fi> : atzīmē nosacījumu bloka beigas.
  • echo 'Iteration no $a'> : izdrukā ziņojumu, kas norāda pašreizējo iterācijas numuru. Šī rinda tiek izlaista, jaa>ir vienāds ar 5, jocontinue>paziņojums, apgalvojums.
  • done> : atzīmē cilpas beigas.

Skripts izveido for cilpu, kas atkārto vērtības no 1 līdz 10. Katras iterācijas laikā tas pārbauda, ​​vai vērtībaa>ir vienāds ar 5. Ja tā ir, cilpa turpina nākamo iterāciju, neizpildot atlikušos cilpas pamattekstā esošus paziņojumus. Pretējā gadījumā tas izdrukā ziņojumu, norādot pašreizējo iterācijas numuru. Cilpa turpinās, līdz tiek pabeigtas visas iterācijas.

'līdz' paziņojums Shell skriptā operētājsistēmā Linux

Līdz cilpa tiek izpildīta tik reižu, cik nosacījums/komanda novērtē kā false. Cilpa beidzas, kad nosacījums/komanda kļūst patiesa.

jquery šo klikšķi

Sintakse:

#/bin/bash until  do       done>

Notiek cilpas “līdz” ieviešana Shell Scrip

Pirmkārt, mēs izveidojam failu, izmantojot teksta redaktoru operētājsistēmā Linux. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim until.sh>

Jūs varat aizstāt līdz. sh ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt ir lielāks par operatoru
#Atkārtojiet cilpu, līdz a ir lielāka par 10

līdz [ $a -gt 10 ]
darīt

# Drukājiet vērtības
atbalss $a

# palieliniet vērtību
a=`ekspr $a + 1`
darīts

Izvade:

Unitl cilpa operētājsistēmā Linux

Līdz cilpai Linux

Paskaidrojums:

  • #/bin/bash> : norāda, ka skripts jāinterpretē, izmantojot Bash apvalku.
  • a=0> : inicializē mainīgoa>ar vērtību 0.
  • until [ $a -gt 10 ]> : uzsāk līdz cilpu, kas turpinās tik ilgi, kamēr ir norādīta vērtībaa>nav lielāks par 10.
  • do> : atzīmē cilpas korpusa sākumu.
  • echo $a> : izdrukā pašreizējo vērtībua>konsole.
  • a=> izteiksme $a + 1 : palielina vērtībua>1. Theexpr>komanda tiek izmantota aritmētiskām izteiksmēm.
  • done> : atzīmē cilpas beigas.

Piezīme: Shell skriptēšana ir reģistrjutīga valoda, kas nozīmē, ka, rakstot skriptus, ir jāievēro pareiza sintakse.

Atkārtotu paziņojumu piemēri

1. Krāsu atkārtošana, izmantojot For Loop

Pirmkārt, mēs izveidojam failu, izmantojot teksta redaktoru operētājsistēmā Linux. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim color.sh>

Color.sh var aizstāt ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x color.sh>

#/bin/bash

COLOURS=sarkans zaļš zils

# cilpa for turpinās, līdz tā nolasa visas vērtības no COLOURS

COLOR, $COLORS
darīt
echo COLOR: $COLOR
darīts

Izvade:

Līdz operētājsistēmai Linux

Līdz operētājsistēmai Linux

Paskaidrojums:

nulles
  • Krāsu inicializācija:
    • COLORS='red green blue'>: inicializē mainīgo ar nosaukumuCOLORS>ar atstarpi atdalītu krāsu vērtību sarakstu (sarkans, zaļš un zils).
  • Cikla iterācijai:
    • for COLOR in $COLORS>: ierosina for cilpu, kas atkārtojas pār katru vērtību laukāCOLORS>mainīgs.
      • Cilpas pamatteksts:
        • echo 'COLOR: $COLOR'>: izdrukā ziņojumu par katru krāsu, parādot pašreizējo krāsas vērtību.
    • Cilpa turpinās, līdz tā apstrādā visas vērtības, kas atrodasCOLORS>mainīgs.

Šis piemērs parāda vienkāršu cilpu programmā Bash, atkārtojot krāsu sarakstu, kas saglabātsCOLORS>mainīgs. Cilpa izdrukā ziņojumu par katru krāsu, norādot pašreizējo krāsu, kas tiek apstrādāta. Cilpa atkārtojas, līdz ir izsmeltas visas krāsu vērtības.

2. Bezgalīgas cilpas izveide ar while true programmā Shell Script

Vispirms mēs izveidojam failu, izmantojot Linux teksta redaktoru. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim infinite.sh>

Jūs varat aizstāt infinite.sh ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x infinite.sh>

#/bin/bash

kamēr taisnība
darīt

# Jāizpilda komanda
# miegs 1 norāda, ka tas guļ 1 sek
echo Sveiki, es esmu bezgalības cilpa
gulēt 1
darīts

Izvade:

bezgalīga cilpa operētājsistēmā Linux

bezgalīga cilpa operētājsistēmā Linux

Paskaidrojums:

Bezgalīgas cilpas struktūra:

  • while true>: uzsāk brīža cilpu, kas turpinās bezgalīgi kā nosacījumstrue>vienmēr ir taisnība.
    • Cilpas pamatteksts:
      • echo 'Hi, I am infinity loop'>: izdrukā ziņojumu, kas norāda, ka skripts atrodas bezgalīgā ciklā.
      • sleep 1>: aptur cilpas izpildi uz 1 sekundi pirms nākamās iterācijas.
  • Cilpa turpinās bezgalīgi, vairākas reizes izpildot komandas savā korpusā.

Šajā piemērā ir parādīta bezgalīgas cilpas izveide, izmantojot Bash konstrukciju while true. Cilpa nepārtraukti drukā ziņojumu, norādot, ka tā ir bezgalīga cilpa, un ietver miega 1 komandu, radot vienas sekundes aizkavi starp iterācijām. Bezgalīgas cilpas bieži izmanto procesiem, kuriem jādarbojas nepārtraukti, līdz tie tiek pārtraukti manuāli.

3. Interaktīvā vārda apstiprināšanas cilpa

Vispirms mēs izveidojam failu, izmantojot Linux teksta redaktoru. Šajā gadījumā mēs izmantojam 'vim' redaktoru.

vim name.sh>

Jūs varat aizstāt name.sh ar vēlamo nosaukumu.

Pēc tam mēs padarām savu skriptu izpildāmu, izmantojot komandu 'chmod' operētājsistēmā Linux.

chmod +x name.sh>

#/bin/bash

PAREIZI=n
kamēr [ $CORRECT == n ]
darīt

# cilpa tiek pārtraukta, kad ievadāt y, t.i., ja jūsu vārds ir pareizs
# -p apzīmē tūlītēju ievades pieprasījumu

lasīt -p Ievadiet savu vārdu: VĀRDS
lasīt -p Vai ${NAME} ir pareizi? PAREIZI
darīts

Izvade:

Interaktīvs skripts operētājsistēmā Linux

Interaktīvs skripts operētājsistēmā Linux

Paskaidrojums:

arp komanda
  • Inicializācija:
    • CORRECT=n>: inicializē mainīgo ar nosaukumuCORRECT>ar vērtību n. Šis mainīgais tiek izmantots, lai kontrolētu cilpu.
  • Interaktīvā cilpa:
    • while [ '$CORRECT' == 'n' ]>: uzsāk kamēr cilpu, kas turpinās tik ilgi, kamēr ir vērtībaCORRECT>ir vienāds ar n.
      • Cilpas pamatteksts:
        • read -p 'Enter your name:' NAME>: piedāvā lietotājam ievadīt savu vārdu un saglabā ievadīto informāciju mapēNAME>mainīgs.
        • read -p 'Is ${NAME} correct? ' CORRECT>: lūdz lietotājam apstiprināt, vai ievadītais vārds ir pareizs, un atjauninaCORRECT>attiecīgi mainās.
    • Cilpa turpinās, līdz lietotājs ievada y (norādot pareizo nosaukumu).

Šajā piemērā ir parādīta interaktīva cilpa, kas liek lietotājam ievadīt savu vārdu un pēc tam lūdz apstiprinājumu. Cilpa turpinās, līdz lietotājs apstiprina, ka ievadītais nosaukums ir pareizs, ievadot y. Cilpa izmanto ` read> `>komandu lietotāja ievadei un atjaunina ` CORRECT> `>mainīgais, lai kontrolētu cilpas plūsmu.

Secinājums

Šajā rakstā mēs apspriedām cilpas paziņojumus Bash skriptēšanā, pārklājumāwhile>,for>, ununtil>cilpas. Tas iepazīstina ar lietošanubreak>uncontinue>paziņojumi, lai mainītu cilpas uzvedību. Praktiski piemēri ilustrē cilpu ieviešanu, tostarp krāsu vērtību atkārtošanu, bezgalīgu cilpu izveidi un interaktīvas cilpas izveidi lietotāja ievades validācijai. Rokasgrāmata piedāvā kodolīgu, taču informatīvu resursu, lai izprastu un izmantotu cilpas konstrukcijas Bash skriptēšanā.