Skip to main content

Hvordan man skriver en Bash IF-Statement (Conditionals)

How to fix a kenwood radio in protect mode ~ the easy way ~ (April 2025)

How to fix a kenwood radio in protect mode ~ the easy way ~ (April 2025)
Anonim

Med en if-statement, som er en form for betinget erklæring, kan du udføre forskellige handlinger afhængigt af bestemte betingelser. Det giver effektivt systemet mulighed for at træffe beslutninger.

Et eksempel på den enkleste form for en if-sætning ville være:

tælle = 5 hvis $ count == 5 derefter ekko "$ count" fi

I dette eksempel bruges variablen "count" til at angive en betingelse, der bruges som en del af if-sætningen. Før udførelsen af ​​if-sætningen er variablen "count" tildelt værdien "5". Hvis-sætningen kontrollerer derefter, om værdien af ​​"count" er "5". Hvis dette er tilfældet, udføres sætningen mellem nøgleordene "derefter" og "fi", ellers udføres eventuelle udsagn efter if-erklæringen. Søgeordet "fi" er "hvis" stavet baglæns. Bash scripting sprog bruger denne konvention til at markere slutningen af ​​et komplekst udtryk, sådan en if-statement eller case-statements.

"Echo" -opstillingen udskriver dens argument, i dette tilfælde værdien af ​​variablen "count", til terminalvinduet. Indrykning af koden mellem søgeordene i if-sætningen forbedrer læsbarheden, men er ikke nødvendig.

Hvis du har en situation, hvor et stykke kode kun skal udføres, hvis en betingelse ikke er sand, kan du bruge søgeordet "ellers" i en if-statement, som i dette eksempel:

tælle = 5 hvis $ count == 5 så ekko "$ count" else echo "tæller ikke 5" fi

Hvis tilstanden "$ count == 5" er sand, udskriver systemet værdien af ​​variablen "count", ellers udskrives strengen "count is not 5".

Hvis du vil skelne mellem flere betingelser, kan du bruge søgeordet "elif", som er afledt af "else if" som i dette eksempel:

hvis $ count == 5 så ekko "count er fem" elif $ count == 6 så echo "count er seks" else echo "ingen af ​​de ovennævnte" fi

Hvis "count" er "5", udskriver systemet "count er five". Hvis "count" ikke er "5" men "6", udskriver systemet "count is six". Hvis det ikke er "5" eller "6", udskriver systemet "ingen af ​​ovenstående".

Som du måske har gættet, kan du have et hvilket som helst antal "elif" klausuler. Et eksempel med flere "elif" -betingelser ville være:

hvis $ count == 5 så ekko "tælle er fem" elif $ count == 6 så ekko "tælle er seks" elif $ tæller == 7 derefter ekko "tælle er syv" elif $ count = = 8 derefter ekko "tæller er otte" elif $ count == 9 så ekko "tæller er ni" ellers ekko "ingen af ​​de ovennævnte" fi

En mere kompakt måde at skrive sådanne udsagn med flere betingelser på er tilfældet. Det fungerer som om-erklæringen med flere "elif" -klausuler, men er mere præcis. For eksempel kan ovenstående stykke kode genskrives med "case" -opstillingen som følger:

tilfælde "$ count" i 5) echo "count er fem" ;; 6) ekko "tæller er seks"; 7) ekko "tæller er syv" ;; 8) ekko "tæller er otte" ;; 9) ekko "tæller er ni"; *) ekko "ingen af ​​de ovennævnte" esac

If-sætninger bruges ofte indenfor for-loops eller while-loops som i dette eksempel:

tæller = 1 færdig = 0 mens $ tæller -le 9 sover 1 ((tæller ++)) hvis $ tæller == 5 fortsæt derefter fi echo "$ count" færdig ekko færdiggjort

Du kan også have indlejrede hvis erklæringer. Nemeste nestede hvis erklæring er af formularen: hvis … så … ellers … hvis … så … fi … fi. Men hvis-erklæring kan indlejres med vilkårlig kompleksitet.

Se også hvordan man sender argumenter til et bash script, som viser, hvordan man bruger conditionals til at behandle parametre, der er gået fra kommandolinjen.

Den bash shell giver andre programmering konstruktioner, såsom for-loops, while-loops og aritmetiske udtryk.