Bash-komentosarjat – If-lause

Bash-komentosarjat – If-lause

Bash on komentokielten tulkki. Se on oletuskomentotulkki useimmissa GNU/ Linux-järjestelmät ja se on laajalti saatavilla eri käyttöjärjestelmissä. Nimi on lyhenne sanoista Bourne-Again SHell . Komentosarja mahdollistaa sellaisten käskyjen suorittamisen, jotka muuten suoritettaisiin yksitellen interaktiivisesti.

Tässä artikkelissa keskustelemme if-lauseesta bash-komentosarjassa.

Bash If -lausunto

Bashin if-lauseen perussyntaksi:

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi 

Selitys:



  • if [ condition ]; then> : Tämä rivi aloittaa if-lauseen missä condition> on lauseke, joka arvioidaan. Jos ehto on tosi, koodi sisällä then> lohko suoritetaan.
  • # code to be executed if the condition is true> : Tämä on koodilohko, joka suoritetaan, jos if-lauseessa määritetty ehto on tosi.
  • fi> : Tämä merkitsee if-lauseen loppua.

Bash-skripti määrittää, onko luku parillinen

Seuraava on esimerkki käsikirjoitus joka pyytää sinua syöttämään luvun ja tarkistaa sitten, onko annettu luku parillinen.

#!/usr/bin/bash
# Tämä komentosarja kehottaa käyttäjää syöttämään numeron, tarkistaa, onko se parillinen, ja tulostaa viestin vastaavasti.
# Kehota käyttäjää syöttämään numero

echo -n Syötä numero:
lue x

# Tarkista, onko syötetty numero parillinen
jos [ $((x % 2)) == 0 ]; sitten
kaikunumero on parillinen
olla

Selitys:

  1. #!/usr/bin/bash> : Tämä on shebang-rivi, joka määrittää polun Bash-tulkkiin. Se osoittaa, että komentosarja tulee suorittaa Bashilla.
  2. echo -n 'Enter Number: '> : Tämä rivi tulostaa kehotteen Enter Number: ilman rivinvaihtomerkkiä ( -n> vaihtoehto). Se odottaa, että käyttäjä syöttää numeron.
  3. read x> : Lukee käyttäjän syötteen ja määrittää sen muuttujalle x> .
  4. if [ $((x % 2)) == 0 ]; then> : Tämä rivi tarkistaa, onko syötetyn luvun jaon loppuosa ( x> ) luvulla 2 on yhtä kuin 0. Jos tosi, se tarkoittaa, että luku on parillinen.
  5. echo 'Number is Even'> : Jos if-lauseen ehto on tosi, tämä rivi tulostaa konsoliin Numero on parillinen.

Lähtö:

Bash-skripti määrittää, onko luku parillinen

Bash-skripti määrittää, onko luku parillinen

Huomautus: Skripti ei käsittele tapauksia, joissa käyttäjä syöttää ei-numeerisen arvon. Jos käyttäjä syöttää ei-numeerisen arvon, se voi tuottaa odottamattomia tuloksia. Tämän korjaamiseksi voidaan lisätä ylimääräinen syötteen validointi.

Bash if-else -lausunto

Bashin if-else-lauseen perussyntaksi:

#!/bin/bash

jos [ehto ]; sitten

# koodi, joka suoritetaan, jos ehto on tosi

muu

# koodi, joka suoritetaan, jos ehto on epätosi

olla

Selitys:

  • if [ condition ]; then> : Tämä rivi aloittaa if-lauseen missä condition> on lauseke, joka arvioidaan. Jos ehto on tosi, koodi sisällä then> lohko suoritetaan.
  • # code to be executed if the condition is true> : Tämä on koodilohko, joka suoritetaan, jos if-lauseessa määritetty ehto on tosi.
  • else> : Jos if-lauseen ehto on epätosi, koodin sisällä oleva koodi else> lohko suoritetaan.
  • # code to be executed if the condition is false> : Tämä on koodilohko, joka suoritetaan, jos if-käskyssä määritetty ehto on epätosi.
  • fi> : Tämä merkitsee if-else-lauseen loppua.

Kuinka löytää suurempi määrä käyttämällä if-else-lauseita Bash-skriptissä?

Tässä on Bash-komentosarja, jonka avulla saat selville suuremman määrän käyttämällä if-else-lausetta Bash Scriptissa.

#!/bin/bash
# Kehota käyttäjää syöttämään x:n arvo

echo -n Syötä x:n arvo:
lue x

jos [ $x -gt 5 ]; sitten
echo x on suurempi kuin 5
muu
echo x ei ole suurempi kuin 5
olla

Selitys:

  • #!/bin/bash : Tätä riviä kutsutaan shebangiksi ja se osoittaa, että komentosarja tulee tulkita ja suorittaa Bash-kuoren avulla.
  • # Kehota käyttäjää syöttämään x:n arvo : Tämä on kommentti, joka osoittaa seuraavan rivin tarkoituksen.
  • echo -n Syötä x:n arvo: : Tämä rivi tulostaa viestin Syötä x:n arvo päätteeseen siirtymättä seuraavalle riville. Käyttäjä syöttää arvonsa samalle riville.
  • lue x : Tämä rivi lukee käyttäjän syötteen ja määrittää sen muuttujalle 'x'.
  • jos [ $x -gt 5 ]; sitten : Tämä on if-lause, joka tarkistaa, onko 'x':n arvo suurempi kuin 5.
    • $x : Edustaa muuttujan 'x' arvoa.
    • -gt : tarkoittaa suurempaa kuin numeerisen vertailun yhteydessä.
    • 5 : Arvoa verrataan.
  • echo x on suurempi kuin 5 : Jos edellisen rivin ehto on tosi, tämä rivi suoritetaan, tulostetaan x on suurempi kuin 5 päätteelle.
  • muu : Jos if-lauseen ehto on epätosi, komentosarja hyppää else-lohkoon.
  • echo x ei ole suurempi kuin 5 : Tämä rivi suoritetaan, jos 'x':n arvo ei ole suurempi kuin 5, tulostuksen x ei ole suurempi kuin 5 päätteelle.
  • olla : Tämä tarkoittaa if-else-lohkon loppua.

Lähtö:

Suuremman luvun etsiminen if-else-toiminnolla

Suuremman luvun etsiminen if-else-toiminnolla

Bash if-elif-else lausunto

The if-elif-else> Bashin lauseketta käytetään ehdolliseen haarautumiseen. Sen avulla voit määrittää useita ehtoja ja suorittaa erilaisia ​​koodilohkoja näiden ehtojen arvioinnin perusteella.

Bashin if-elif-else -lauseen perussyntaksi:

#!/bin/bash

jos [ehto1]; sitten
# Suoritettava koodi, jos ehto1 on tosi
elif [ehto2]; sitten
# Suoritettava koodi, jos ehto2 on tosi
elif [ehto3]; sitten
# Suoritettava koodi, jos ehto3 on tosi
muu
# Suoritettava koodi, jos mikään ehdoista ei täyty
olla

Selitys:

  • jos [ehto1]; sitten : Tämä on aloituskohta if-elif-else> lausunto. Tämän lohkon koodi suoritetaan, jos condition1> on totta.
  • # Suoritettava koodi, jos ehto1 on tosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition1> on totta.
  • elif [ehto2]; sitten : Jos condition1> on epätosi, skripti tarkistaa condition2> . Jos condition2> on totta, tämän lohkon koodi suoritetaan.
  • # Suoritettava koodi, jos ehto2 on tosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition2> on totta.
  • elif [ehto3]; sitten : Jos molemmat condition1> ja condition2> ovat vääriä, skripti tarkistaa condition3> . Jos condition3> on totta, tämän lohkon koodi suoritetaan.
  • # Suoritettava koodi, jos ehto3 on tosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition3> on totta.
  • muu : Jos mikään edellisistä ehdoista (ehto1, ehto2, ehto3 jne.) ei ole tosi, koodi else> lohko suoritetaan.
  • # Suoritettava koodi, jos mikään ehdoista ei täyty : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos mikään ehdoista ei täyty.
  • olla : Tämä merkitsee loppua if-elif-else> lausunto. Sana fi on kirjoitettu taaksepäin ja sitä käytetään sulkemaan ehdolliset lohkot Bashissa.

Kuinka selvittää, onko luku positiivinen, negatiivinen vai nolla käyttämällä 'if-elif-else' -lausetta Bashissa?

Lisätään koodia yllä olevassa esimerkissä ja lisätään ehto nollan tarkistamiseksi.

#!/bin/bash

# Kehota käyttäjää syöttämään numero

echo -n Syötä numero:
lue numero

jos [ $num -gt 0 ]; sitten
echo $num on positiivinen luku.
elif [ $num -lt 0 ]; sitten
echo $num on negatiivinen luku.
muu
echo $num on nolla.
olla

Selitys:

  • #!/bin/bash : Tämä rivi on shebang, joka osoittaa, että komentosarja tulee tulkita ja suorittaa Bash-kuoren avulla.
  • # Kehota käyttäjää syöttämään numero : Tämä on kommentti, joka osoittaa seuraavan rivin tarkoituksen.
  • echo -n Syötä numero: : Tämä rivi tulostaa viestin Syötä numero: päätteeseen siirtymättä seuraavalle riville. Käyttäjä syöttää numeronsa samalle riville.
  • lue numero : Tämä rivi lukee käyttäjän syötteen ja määrittää sen muuttujaan 'num'.
  • jos [ $num -gt 0 ]; sitten : Tämä on if-lause, joka tarkistaa, onko 'num':n arvo suurempi kuin 0.
    • $num : Edustaa muuttujan 'num' arvoa.
    • -gt : tarkoittaa suurempaa kuin numeerisen vertailun yhteydessä.
    • 0 : Arvoa verrataan.
  • echo $num on positiivinen luku. : Jos edellisen rivin ehto on tosi, tämä rivi suoritetaan, tulos $num on positiivinen luku. terminaaliin.
  • elif [ $num -lt 0 ]; sitten : Jos if-lauseen ehto on epätosi, tämä rivi tarkistaa, onko 'num':n arvo pienempi kuin 0.
    • $num : Edustaa muuttujan 'num' arvoa.
    • -lt : tarkoittaa vähemmän kuin numeerisen vertailun yhteydessä.
    • 0 : Arvoa verrataan.
  • echo $num on negatiivinen luku. : Jos elif-lauseen ehto on tosi, tämä rivi suoritetaan, tulos $num on negatiivinen luku. terminaaliin.
  • muu : Jos sekä if- että elif-lauseiden ehdot ovat epätosi, komentosarja hyppää else-lohkoon.
  • echo $num on nolla. : Tämä rivi suoritetaan, jos 'num'-arvo ei ole suurempi kuin 0 ja vähintään 0, tulostettaessa $num on nolla. terminaaliin.
  • olla : Tämä tarkoittaa if-elif-else -lohkon loppua.

Lähtö:

jos Luku on positiivinen, negatiivinen tai nolla. Käytä

jos Luku on positiivinen, negatiivinen tai nolla. Käytä 'jos-elif-else' -funktiota

Bash Nested if -lausunto

Bashissa voit käyttää sisäkkäistä if> lauseita monimutkaisempien ehdollisten rakenteiden luomiseksi. Tässä on sisäkkäisen tekstin syntaksi if> lausunto:

#!/bin/bash

jos [ehto1]; sitten
# Suoritettava koodi, jos ehto1 on tosi
jos [ehto2]; sitten
# Suoritettava koodi, jos ehto2 on tosi
muu
# Suoritettava koodi, jos ehto2 on epätosi
olla
muu
# Suoritettava koodi, jos ehto1 on epätosi
olla

Selitys:

  • jos [ehto1]; sitten : Tämä on ulompi if> lausunto. Jos condition1> on totta, tämän lohkon sisällä oleva koodi suoritetaan.
  • # Suoritettava koodi, jos ehto1 on tosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition1> on totta.
  • jos [ehto2]; sitten : Ulkopuolen lohkon sisällä if> lausunto, on sisäinen if> lausunto. Jos condition2> on totta, tämän lohkon sisällä oleva koodi suoritetaan.
  • # Suoritettava koodi, jos ehto2 on tosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition2> on totta.
  • muu : Jos condition2> sisäpuolella if> lausunto on väärä, koodi sisällä else> sisäosan lohko if> lausunto suoritetaan.
  • # Suoritettava koodi, jos ehto2 on epätosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition2> on väärä.
  • olla : Tämä merkitsee sisäosan loppua if> lausunto.
  • muu : Jos condition1> ulkona if> lausunto on väärä, koodi sisällä else> ulomman lohko if> lausunto suoritetaan.
  • # Suoritettava koodi, jos ehto1 on epätosi : Korvaa tämä kommentti todellisella koodilla, jonka haluat suorittaa, jos condition1> on väärä.
  • olla : Tämä merkitsee ulkopuolen loppua if> lausunto.

Kuinka tarkistaa ikäkelpoisuus ja eläkeläiset Bashissa käyttämällä sisäkkäisiä If-lausuntoja?

Muokataan yllä olevaa koodia hieman käyttääksesi sisäkkäistä if-toimintoa.

#!/bin/bash
# Kehota käyttäjää antamaan ikä
echo -n Anna ikäsi:
lue ikä

jos [ $ikä -ge 18 ]; sitten
echo Olet äänioikeutettu.
jos [ $ikä -ge 65 ]; sitten
echo Olet oikeutettu myös eläkeläisten etuihin.
muu
echo Et ole vielä oikeutettu eläkeläisten etuuksiin.
olla
muu
echo Et ole vielä äänioikeutettu.
olla

Selitys:

  • #!/bin/bash : Tämä rivi on shebang, joka osoittaa, että komentosarja tulee tulkita ja suorittaa Bash-kuoren avulla.
  • # Kehota käyttäjää antamaan ikä : Tämä on kommentti, joka osoittaa seuraavan rivin tarkoituksen.
  • echo -n Anna ikäsi: : Tämä rivi tulostaa viestin Syötä ikäsi: päätteeseen siirtymättä seuraavalle riville. Käyttäjä syöttää ikänsä samalle riville.
  • lue ikä : Tämä rivi lukee käyttäjän syötteen ja määrittää sen muuttujalle 'age'.
  • jos [ $ikä -ge 18 ]; sitten : Tämä on if-lause, joka tarkistaa, onko 'age'-arvo suurempi tai yhtä suuri kuin 18.
    • $ikä : Edustaa muuttujan 'age' arvoa.
    • -ge : tarkoittaa suurempi tai yhtä suuri numeerisen vertailun yhteydessä.
    • 18 : Arvoa verrataan.
  • echo Olet äänioikeutettu. : Jos edellisen rivin ehto on tosi, tämä rivi suoritetaan ja tulostetaan. Olet äänioikeutettu. terminaaliin.
  • jos [ $ikä -ge 65 ]; sitten : Ensimmäisen if-lohkon sisällä tämä on toinen if-lause, joka tarkistaa, onko 'age'-arvo suurempi tai yhtä suuri kuin 65.
    • $ikä : Edustaa muuttujan 'age' arvoa.
    • -ge : tarkoittaa suurempi tai yhtä suuri numeerisen vertailun yhteydessä.
    • 65 : Arvoa verrataan.
  • echo Olet oikeutettu myös eläkeläisten etuihin. : Jos sisemmän if-lauseen ehto on tosi, tämä rivi suoritetaan ja tulostetaan. Olet myös oikeutettu eläkeläisten etuihin. terminaaliin.
  • muu : Jos sisemmän if-lauseen ehto on epätosi, komentosarja hyppää ulkoisen if-lauseen sisällä olevaan else-lohkoon.
    • echo Et ole vielä oikeutettu eläkeläisten etuuksiin. : Tämä rivi suoritetaan, jos ikä-arvo ei ole suurempi tai yhtä suuri kuin 65, tulostus Et ole vielä oikeutettu eläkeläisten etuihin. terminaaliin.
  • olla : Tämä tarkoittaa sisemmän jos-else-lohkon loppua.
  • muu : Jos ulkoisen if-lauseen ehto on epätosi, komentosarja hyppää else-lohkoon.
    • echo Et ole vielä äänioikeutettu. : Tämä rivi suoritetaan, jos 'age'-arvo ei ole suurempi tai yhtä suuri kuin 18, tulostus Et ole vielä äänioikeutettu. terminaaliin.
  • olla : Tämä tarkoittaa ulomman jos-else-lohkon loppua.

Lähtö:

Nested-if käyttäen Bashia

Nested-if käyttäen Bashia

Usein kysytyt kysymykset ja huomautukset tilanteesta CONDITION

Nämä ovat muutamia asioita, jotka minun tulee pitää mielessäni kirjoittaessani testiehtoja bashissa.

1. Varmista, että suluissa ja varsinaisen tarkistus-/vertailulausekkeen välissä on tyhjät välilyönnit.

Esimerkiksi seuraava ei toimi.

if [$x==0] 

Bash ilmoittaa virheestä koskien a puuttuu] .

2. Lopeta rivi aina ennen uuden avainsanan lisäämistä, kuten sitten.

If, then else, elif ja fi ovat kaikki shell-avainsanoja, mikä tarkoittaa, että niitä ei voi käyttää samalla rivillä. Laita ; edellisen lauseen ja avainsanan välillä tai aloita uusi rivi avainsanalla.

3. Jos haluat käyttää useita ehtoja yhdessä käskyssä, käytä loogisia operaattoreita.

Voimme käyttää loogisia AND(&&)- tai loogisia OR(||)-operaattoreita useiden ehtojen käyttämiseen.

Esimerkiksi:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi 

Tässä -ge on lyhenne sanoista suurempi tai yhtä suuri kuin

4. Kuinka verrata merkkijonoja Bash if -lauseessa?

Käytä ` => `> operaattori merkkijono yhtäläisyydelle ja ` !=`> eriarvoisuuden vuoksi.

Esimerkiksi:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi 

5. Voinko käyttää säännöllisiä lausekkeita Bash if -lauseissa?

Kyllä, voit käyttää ` [[ ... ]]`> muodostaa edistyneemmän merkkijonovastaavuuden säännöllisten lausekkeiden kanssa.

Esimerkiksi:

if [[ '$string' =~ ^[0-9]+$ ]]; then  # Code to execute if the string contains only numbers else  # Code to execute if the string does not contain only numbers fi 

6. Kuinka tarkistaa, onko Bash-komentosarjassa tiedosto if-käskyn avulla?

Voit käyttää ` -e`> lippu tällaisessa kunnossa:

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi 

7. Mikä on if-else-lausekkeen syntaksi Bash-komentosarjassa?

Perussyntaksi an 'jos-muu'. lause Bash-komentosarjassa on:

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi 

8. Kuinka käytän elif-lausetta Bash-skriptissä?

` elif`> lauseketta käytetään lisäehtojen tarkistamiseen, jos alkukirjain if> ehto on väärä.

Tässä on esimerkki:

if [ condition1 ]; then  # Code to execute if condition1 is true elif [ condition2 ]; then  # Code to execute if condition2 is true else  # Code to execute if none of the conditions are true fi 

9. Kuinka voin käyttää loogisia operaattoreita (AND, OR) Bash if -lauseissa?

Voit käyttää ` -a`> loogisille AND ja ` -o`> loogiselle TAI:lle.

Esimerkiksi:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi 

Johtopäätös

Tässä artikkelissa keskustelimme Bash-komentosarjasta, joka on kuin erittäin hyödyllinen työkalu saada tietokoneesi tekemään asioita automaattisesti. Tämä artikkeli opetti meille bashin if-lauseesta, joka on kuin skriptien päätöksentekijä. Opimme perusasiat, näimme esimerkkejä, kuten tarkistamme, onko luku parillinen tai selvitimme, voiko joku äänestää, ja tutkimme jopa hienompia asioita, kuten monien ehtojen käsittelyä tai jos-lauseiden laittamista toistensa sisälle. Artikkelissa annettiin selkeitä selityksiä, esimerkkejä ja vastattiin yleisiin kysymyksiin auttaakseen meitä käyttämään Bash-skriptejä paremmin. Tärkeintä on olla varovainen yksityiskohtien, kuten välien ja erityissääntöjen kanssa, jotta skriptimme toimivat sujuvasti ja helpottavat tehtävien käsittelyä tietokoneella.



Top Artikkelit

Luokka

Mielenkiintoisia Artikkeleita