Tässä aiheessa ymmärrämme kuinka käyttää jos lausunnot Bash-skripteissä, jotta voimme suorittaa automatisoidut tehtävämme.
Bash jos lausunnoista on hyötyä. Niitä käytetään ehdollisten tehtävien suorittamiseen lauseiden peräkkäisessä suorituksessa. Jos lausunnot antavat meille yleensä mahdollisuuden tehdä päätöksiä Bash-skripteissämme. Ne auttavat meitä päättämään, suoritetaanko koodinpätkä sen ehdon perusteella, jonka voimme asettaa.
Basic if -lausunnot
Perus if-lause komento, että jos tietty ehto on tosi, suorita vain tietty joukko toimintoja. Jos se ei ole totta, älä suorita näitä toimia. Jos lausunto perustuu seuraavaan muotoon:
Syntaksi
if [ expression ]; then statements fi
Lausunto välillä sitten ja olla (Jos taaksepäin) suoritetaan vain, jos lauseke (hakasulkujen välissä) on tosi.
dynaaminen java-taulukko
Huomautus:Huomioi ensimmäisellä rivillä käytetyt välilyönnit ja ensimmäisen rivin lopussa oleva puolipiste; molempien käyttö on pakollista.Jos ehdollinen lausuntoloppuuolla.
- Useiden ehtojen käyttäminen AND-operaattorin kanssa:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Useiden ehtojen käyttäminen OR-operaattorin kanssa:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Yhdistetyissä lausekkeissa, joissa on AND & OR -operaattoreita, voimme käyttää seuraavaa syntaksia:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Seuraavassa on joitain esimerkkejä if-lausekkeen käytöstä:
Esimerkki 1
Syötä tässä esimerkissä mikä tahansa luku ja tarkista, onko arvo suurempi kuin 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Lähtö
Jos annamme numeron 159, tulos näyttää tältä:
Esimerkki 2
Tässä esimerkissä havainnollistetaan käyttö jos lausunto yksinkertaisella skenaariolla, jossa verrataan kahta merkkijonoa:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Lähtö
c++ merkkijonon jako
Esimerkki 3
Tässä esimerkissä näytämme kuinka vertailla lukuja käyttämällä if-lausetta:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Lähtö
Esimerkki 4
Tässä esimerkissä määritetään, kuinka AND-operaattoria käytetään useiden ehtojen sisällyttämiseen if-lausekkeeseen:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Lähtö
Esimerkki 5
Tässä esimerkissä määritetään, kuinka OR-operaattoria käytetään useiden ehtojen sisällyttämiseen if-lausekkeeseen:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Lähtö
Esimerkki 6
Tässä esimerkissä määritämme, kuinka AND- ja OR-funktioita käytetään useiden ehtojen sisällyttämiseen if-lausekkeeseen:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Lähtö
heittää int merkkijonoon java
If-lausekkeen asetukset Bash-komentosarjassa
Jos lauseke sisältää useita vaihtoehtoja tietyn tehtävän suorittamiseksi. Näitä valintoja voidaan käyttää tiedostooperaatioihin, merkkijonotoimintoihin jne. Seuraavassa on joitain yleisimmin käytettyjä valintoja:
Vaihtoehdot (operaattorit) | Kuvaus |
---|---|
! ILMAISU | Tarkistaaksesi, onko LAUSUNTA väärä. |
-n STRING | Tarkistaa, onko STRING pituus suurempi kuin nolla. |
-z STRING | Tarkistaa, onko STRING:n pituus nolla (eli se on tyhjä) |
STRING1 == STRING2 | Tarkistaa, onko STRING1 yhtä kuin STRING2. |
STRING1 != STRING2 | Tarkistaaksesi, onko STRING1 eri kuin STRING2. |
KOKONAISLUKU1 -eq KOKONAISLUKU2 | Tarkistaa, onko KOKONAISLUKU1 numeerisesti yhtä suuri kuin KOKONAISLUKU2. |
KOKONAISLUKU1 -gt KOKONAISLUKU2 | Tarkistaa, onko KOKONAISLUKU1 numeerisesti suurempi kuin KOKONAISLUKU2. |
KOKONAISLUKU1 -lt KOKONAISLUKU2 | Tarkistaa, onko KOKONAISLUKU1 numeerisesti pienempi kuin KOKONAISLUKU2. |
-d TIEDOSTO | Tarkistaa, onko FILE olemassa ja onko se hakemisto. |
-e TIEDOSTO | Tarkistaaksesi, onko FILE olemassa. |
-r TIEDOSTO | Tarkistaa, onko FILE olemassa ja onko lukuoikeus myönnetty. |
-s TIEDOSTO | Tarkistaa, onko TIEDOSTO olemassa ja sen koko suurempi kuin nolla (eli se ei ole tyhjä). |
-w TIEDOSTO | Tarkistaa, onko FILE olemassa ja onko kirjoitusoikeus myönnetty. |
x FILE | Tarkistaa, onko TIEDOSTO olemassa ja onko suorituslupa myönnetty. |
Sisäkkäinen If
Voit käyttää niin monta if-lausetta kuin vaaditaan bash-skriptissäsi. On myös mahdollista käyttää if-lausetta toisen 'if-lauseen' sisällä. Se tunnetaan nimellä Nested If Statement.
Esimerkki
Tässä esimerkissä löydämme 'jos annettu luku on suurempi kuin 50 ja jos se on parillinen luku' käyttämällä sisäkkäistä if -lauseketta.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Lähtö
Jos syötämme argumentin arvon 100, tulos näyttää tältä:
Johtopäätös
Tässä aiheessa keskustelimme siitä, kuinka voisimme käyttää ehdollista haarautumista lauseiden peräkkäisessä suorituksessa bash if -lauseen kanssa.