Skip to content

Kuinka kirjoittaa IF-lauseita Bash-skripteihin

27 de kesäkuu de 2021

Kanssa jos käsky, joka on eräänlainen ehdollinen lause, voit suorittaa erilaisia ​​toimintoja määritetyistä ehdoista riippuen. Se antaa järjestelmälle kyvyn tehdä päätöksiä.

Tässä on esimerkki yksinkertaisimmasta muodosta jos lause: määrä = 5
jos [ $count == 5 ]
sitten
kaiku ”$ count”
fi

Tässä esimerkissä muuttuja Kreivi määrittää ehdon, jota käytetään osana jos lausunto. Ennen jos käsky suoritetaan, muuttuja Kreivi on määritetty arvo 5. jos lauseke tarkistaa sitten arvon Kreivi On 5. Jos näin on, avainsanojen välinen lauseke sitten ja fi teloitetaan. Muussa tapauksessa kaikki lausunnot, jotka seuraavat jos lause suoritetaan. Avainsana fi On jos kirjoitettu taaksepäin. Bash-komentosarjakieli käyttää tätä käytäntöä monimutkaisen lausekkeen, kuten jos lausunto tai tapauksessa lausunto. kaiku lause tulostaa argumenttinsa, tässä tapauksessa muuttujan arvon Kreivi, pääteikkunaan. Koodin sisennys jos lause parantaa luettavuutta, mutta ei ole välttämätöntä.

Bash If -lauseke Elsen kanssa

Jos sinulla on tilanne, jossa koodinpätkä tulisi suorittaa vain, jos ehto ei ole totta, käytä avainsanaa muu käytettäessä jos lause, kuten tässä esimerkissä: count = 5
jos [ $count == 5 ]
sitten
kaiku ”$ count”
muu
kaiku ”määrä ei ole 5”
fi

Jos ehto $ count == 5 on totta, järjestelmä tulostaa muuttujan arvon Kreivi. Muussa tapauksessa se tulostaa merkkijonon määrä ei ole 5.

Bash If -lausunto Elifin kanssa

Jos haluat erottaa useita ehtoja, käytä avainsanaa elif, joka on johdettu muuten jos, kuten tässä esimerkissä: jos [ $count == 5 ]
sitten
kaiku ”määrä on viisi”
elif [ $count == 6 ]
sitten
kaiku ”määrä on kuusi”
muu
kaiku ”mikään yllä olevista”
fi

Jos Kreivi On 5, järjestelmä tulostaa määrä on viisi. Jos Kreivi ei ole 5 mutta 6, järjestelmä tulostaa määrä on kuusi. Jos se ei ole kumpaakaan 5 ei myöskään 6, järjestelmä tulostaa ei mikään ylläolevista. Sinulla voi olla mikä tahansa määrä elif lausekkeet. Esimerkki monista elif ehdot ovat: jos [ $count == 5 ]
sitten
kaiku ”määrä on viisi”
elif [ $count == 6 ]
sitten
kaiku ”määrä on kuusi”
elif [ $count == 7 ]
sitten
kaiku ”seitsemän”
elif [ $count == 8 ]
sitten
kaiku ”määrä on kahdeksan”
elif [ $count == 9 ]
sitten
kaiku ”määrä on yhdeksän”
muu
kaiku ”mikään yllä olevista”
fi

Bash-tapauksen lausunto

Kompaktimpi tapa kirjoittaa tällaisia ​​lauseita useilla ehdoilla on tapausmenetelmä. Se toimii samalla tavalla kuin jos lauseke, jossa on useita elif lausekkeita, mutta on suppeampi. Esimerkiksi yllä oleva koodikappale voidaan kirjoittaa uudelleen tapauksessa lauseke seuraavasti: tapaus ”$ count” sisään
5)
kaiku ”määrä on viisi”
;;
6)
kaiku ”määrä on kuusi”
;;
7)
kaiku ”seitsemän”
;;
8)
kaiku ”määrä on kahdeksan”
;;
9)
kaiku ”määrä on yhdeksän”
;;
*)
kaiku ”mikään yllä olevista”
esac

Bash If -lauseke While-silmukassa

jos lauseita käytetään usein for-silmukoiden tai while-silmukoiden sisällä, kuten tässä esimerkissä: count = 1
valmis = 0
sillä aikaa [ $count -le 9 ]
tehdä
nukkua 1
((määrä ++))
jos [ $count == 5 ]
sitten
jatkaa
fi
kaiku ”$ count”
tehty
kaiku valmis

class = ”ql-syntax”> Voit myös olla sisäkkäisiä jos lausunnot. Yksinkertaisin sisäkkäin jos lause on muotoa: jos … niin … muuten … jos … sitten … fi … fi. Kuitenkin jos lause voidaan sijoittaa mielivaltaisesti monimutkaisesti. Katso myös kuinka välittää argumentit bash-komentosarjaan, joka näyttää kuinka ehdollisten avulla voidaan käsitellä komentoriviltä lähetettyjä parametreja. Bash-kuori tarjoaa muita ohjelmointirakenteita, kuten for-silmukoita, while-silmukoita ja aritmeettisia lausekkeita.