tässä opetusohjelmassa, me käydään läpi perusasiat Bash if julkilausuma ja näyttää, miten käyttää sitä omassa shell-skriptit.
päätöksenteko on yksi tietokoneohjelmoinnin peruskäsitteistä. Kuten mikä tahansa muu ohjelmointikieli, if, if..else, if..elif..else ja sisäkkäisiä if lausunnot Bash voidaan suorittaa koodia, joka perustuu tiettyyn kunnossa.,
jos lause #
Bash if ehtolauseita voi olla eri muotoja. Alkeellisinta if lausunto oli seuraavanlainen:
if TEST-COMMANDthen STATEMENTSfi
if selvitys alkaa if avainsana seuraa ehdollinen lauseke ja then avainsana. Lausuma päättyy fi avainsanaan.,
– Jos TEST-COMMAND arvioi True, STATEMENTS teloitetaan. Jos TEST-COMMAND palaa False mitään ei tapahdu, STATEMENTS saa jättää huomiotta.
yleensä on hyvä käytäntö, että koodisi aina sisennetään ja erilliset koodilohkot tyhjillä viivoilla. Useimmat ihmiset valitsevat joko 4-tai 2-avaruuden sisennyksen. Painaumat ja tyhjät rivit tekevät koodistasi luettavamman ja järjestelmällisemmän.,
katsotaanpa seuraava esimerkki skripti, joka tarkistaa, onko annettu numero on suurempi kuin 10.
#!/bin/bashecho -n "Enter a number: "read VARif ]then echo "The variable is greater than 10."fi
Tallenna koodi tiedoston ja ajaa sen komentoriviltä:
bash test.sh
käsikirjoitus sinua pyydetään antamaan numero. Jos, esimerkiksi, voit kirjoittaa 15 – test komento arvioi true koska 15 on suurempi kuin 10, ja echo komento sisälle then lauseke suoritetaan.
The variable is greater than 10.
, jos..,muu Selvitys #
Bash if..else lausunto oli seuraavanlainen:
if TEST-COMMANDthen STATEMENTS1else STATEMENTS2fi
– Jos TEST-COMMAND arvioi True, STATEMENTS1 toteutetaan. Muuten jos TEST-COMMAND palaa False, STATEMENTS2 toteutetaan. Lausekkeessa voi olla vain yksi else lauseke.,
Let ’ s lisätä else lauseke, kuten edellisessä esimerkissä käsikirjoitus:
Jos et suorita koodi ja syötä numero, skriptin tulee tulostaa eri viesti perustuu, onko numero on suurempi tai pienempi/yhtä suuri kuin 10.
if..elif..muu Selvitys #
Bash if..elif..else lausunto oli seuraavanlainen:
if TEST-COMMAND1then STATEMENTS1elif TEST-COMMAND2then STATEMENTS2else STATEMENTS3fi
– Jos TEST-COMMAND1 arvioi True, STATEMENTS1 toteutetaan., Jos TEST-COMMAND2 arvioi True, STATEMENTS2 toteutetaan. Jos mikään testi komentoja arvioida True, STATEMENTS2 suoritetaan.
lauseessa voi olla yksi tai useampi elif lauseke. else lauseke on valinnainen.
olosuhteet arvioidaan peräkkäin., Kun kunto palaa True loput ehtoja ei suoriteta ja ohjelman kontrolli siirtyy loppuun if lausunnot.
Let ’ s lisätä elif lauseke edelliseen käsikirjoitus:
Sisäkkäisiä jos Julkilausumat #
Bash avulla voit pesä if lausunnot sisällä if lausunnot. Voit sijoittaa useita if lausuman sisällä toinen if lausunto.,
seuraava skripti kehottaa antamaan kolme numeroa ja tulostaa suurimman luvun kolmen numeron joukosta.
Tässä on, miten lähtö näyttää:
Enter the first number: 4Enter the second number: 7Enter the third number: 27 is the largest number.
case lausunto sen sijaan sisäkkäiset if lausunnot.Useita Ehtoja #
loogisia OR ja AND toimijoiden avulla voit käyttää useita ehtoja if lausunnot.,
tässä on toinen versio skriptistä, joka tulostaa suurimman luvun kolmen numeron joukosta. Tässä versiossa, sen sijaan sisäkkäiset if lausunnot, käytämme loogista AND (&&) operaattori.
Testaa Toimijoiden #
Bash, test komento ottaa yhden seuraavista syntaksin muodossa:
test EXPRESSION]
käsikirjoituksen kannettava, mieluummin käyttää vanha testi [ – komento, joka on käytettävissä kaikissa POSIX-kuoret., Uusi päivitetty versio test komento [[ (kaksinkertainen suluissa) on tuettu useimmissa nykyaikaisissa järjestelmissä käytetään Bash, Zsh, ja Ksh kuin oletus kuori.
tyhjäksi testi ilme, käyttää loogista NOT (!) operaattori. Kun vertaat merkkijonoja, käytä aina yhden tai kahden lainausmerkit välttää sanan jakaminen ja globbing kysymyksiä.,
Alla on muutamia yleisimmin käytetty toimijat:
-
-nVAR– Totta jos pituusVARon suurempi kuin nolla. -
-zVAR– Tosi, josVARon tyhjä. -
STRING1 = STRING2– Totta, josSTRING1jaSTRING2ovat tasa-arvoisia. -
STRING1 != STRING2– Totta, josSTRING1jaSTRING2eivät ole tasa-arvoisia., -
INTEGER1 -eq INTEGER2– True ifINTEGER1andINTEGER2are equal. -
INTEGER1 -gt INTEGER2– True ifINTEGER1is greater thanINTEGER2. -
INTEGER1 -lt INTEGER2– True ifINTEGER1is less thanINTEGER2. -
INTEGER1 -ge INTEGER2– True ifINTEGER1is equal or greater than INTEGER2. -
INTEGER1 -le INTEGER2– True ifINTEGER1is equal or less thanINTEGER2., -
-hFILE– True if theFILEexists and is a symbolic link. -
-rFILE– True if theFILEexists and is readable. -
-wFILE– True if theFILEexists and is writable. -
-xFILE– True if theFILEexists and is executable., -
-dFILE– Tosi, josFILEolemassa ja se on hakemisto. -
-eFILE– Tosi, josFILEon olemassa, ja on tiedosto, riippumatta tyyppi (solmu, hakemisto, pistorasia, jne.). -
-fFILE– Tosi, josFILEolemassa ja se on tavallinen tiedosto (ole hakemisto tai laite).,
Johtopäätös #
if, if..else ja if..elif..else lausuntojen avulla voit hallita virtaus Bash-skriptin toteutus arvioimalla annettuja ehtoja.