Skip to main content

Hur man skriver en Bash IF-Statement (Conditionals)

iOS App Development with Swift by Dan Armendariz (Juni 2026)

iOS App Development with Swift by Dan Armendariz (Juni 2026)
Anonim

Med ett if-statement, vilket är en typ av villkorligt uttalande, kan du utföra olika åtgärder beroende på angivna förhållanden. Det ger effektivt systemet möjlighet att fatta beslut.

Ett exempel på den enklaste formen av ett if-uttalande skulle vara:

räkna = 5 om $ count == 5 sedan echo "$ count" fi

I det här exemplet används variabeln "count" för att ange ett villkor som används som en del av if-uttalandet. Innan if-statementet exekveras, tilldelas variabeln "count" värdet "5". Om-uttalandet kontrollerar då om värdet av "count" är "5". Om så är fallet utförs uttalandet mellan nyckelorden "då" och "fi", annars utförs några uttalanden som följer if-uttalandet. Nyckelordet "fi" är "om" stavat bakåt. Bash-skriptspråket använder denna konvention för att markera slutet på ett komplext uttryck, ett sådant if-statement eller case-statements.

"Echo" -deklarationen skriver ut sitt argument, i detta fall värdet av variabeln "räkna" till terminalfönstret. Indragning av koden mellan nyckelorden för if-uttalandet förbättrar läsbarheten men är inte nödvändigt.

Om du har en situation där en del kod endast ska utföras om ett villkor inte är sant kan du använda sökordet "annat" i ett if-uttalande, som i det här exemplet:

count = 5 om $ count == 5 sedan echo "$ count" annars echo "count är inte 5" fi

Om villkoret "$ count == 5" är sant, skriver systemet värdet av variabeln "count", annars skrivs strängen "count is not 5".

Om du vill skilja mellan flera villkor kan du använda sökordet "elif", som härrör från "annat om", som i det här exemplet:

om $ count == 5 sedan eko "räkna är fem" elif $ count == 6 då eko "räkna är sex" annars eko "ingen av ovanstående" fi

Om "count" är "5", skriver systemet ut "count is five". Om "count" inte är "5" men "6", skrivs systemet "count is six". Om det inte är "5" eller "6", skriver systemet "ingen av ovanstående".

Som du kanske har gissat kan du ha några "elif" klausuler. Ett exempel med flera "elif" -betingelser skulle vara:

om $ count == 5 sedan echo "räkna är fem" elif $ count == 6 då eko "räkna är sex" elif $ count == 7 då eko "räkna är sju" elif $ count = = 8 sedan eko "räkna är åtta" elif $ count == 9 sedan eko "räkna är nio" annars eko "ingen av ovanstående" fi

Ett mer kompakt sätt att skriva sådana uttalanden med flera villkor är fallmetoden. Det fungerar som om-uttalandet med flera "elif" -klausuler men är mer koncis. Till exempel kan ovanstående kodstycke omskrivas med "fall" -sättningen enligt följande:

fall "$ count" i 5) eko "räkna är fem"; 6) eko "räkna är sex"; 7) eko "räkna är sju"; 8) eko "räkna är åtta"; 9) eko "räkna är nio"; *) eko "ingen av ovanstående" esac

Om-uttalanden används ofta inuti för-loopar eller underband som i det här exemplet:

count = 1 done = 0 medan $ count -le 9 sova 1 ((count ++)) om $ count == 5 fortsätt sedan fi echo "$ count" gjort eko Färdig

Du kan också ha nestad om uttalanden. Enkeltstädat om uttalandet är av formuläret: om … då … annars … om … då … fi … fi. Men om-uttalandet kan nästas med godtycklig komplexitet.

Se även hur man skickar argument till ett bash-skript, vilket visar hur man använder conditionals för att behandla parametrar som passeras från kommandoraden.

Bash-skalet tillhandahåller andra programmeringskonstruktioner, såsom for-loopar, under-loopar och aritmetiska uttryck.