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.
– Yleensä, se on tehokkaampaa käyttää 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:

  • -n VAR – Totta jos pituus VAR on suurempi kuin nolla.
  • -z VAR – Tosi, jos VAR on tyhjä.
  • STRING1 = STRING2 – Totta, jos STRING1 ja STRING2 ovat tasa-arvoisia.
  • STRING1 != STRING2 – Totta, jos STRING1 ja STRING2 eivät ole tasa-arvoisia.,
  • INTEGER1 -eq INTEGER2 – True if INTEGER1 and INTEGER2 are equal.
  • INTEGER1 -gt INTEGER2 – True if INTEGER1 is greater than INTEGER2.
  • INTEGER1 -lt INTEGER2 – True if INTEGER1 is less than INTEGER2.
  • INTEGER1 -ge INTEGER2 – True if INTEGER1 is equal or greater than INTEGER2.
  • INTEGER1 -le INTEGER2 – True if INTEGER1 is equal or less than INTEGER2.,
  • -h FILE – True if the FILE exists and is a symbolic link.
  • -r FILE – True if the FILE exists and is readable.
  • -w FILE – True if the FILE exists and is writable.
  • -x FILE – True if the FILE exists and is executable.,
  • -d FILE – Tosi, jos FILE olemassa ja se on hakemisto.
  • -e FILE – Tosi, jos FILE on olemassa, ja on tiedosto, riippumatta tyyppi (solmu, hakemisto, pistorasia, jne.).
  • -f FILE – Tosi, jos FILE olemassa 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.