Hvordan skrive en Bash IF-erklæring (betingelser)

Med en hvis setning, som er en type betinget setning, kan du utføre forskjellige handlinger avhengig av spesifiserte forhold. Det gir effektivt systemet muligheten til å ta beslutninger.

Bash grunnleggende If-utsagn

Her er et eksempel på den enkleste formen for en hvis uttalelse:

telle=5
if [ $count == 5 ]
deretter
ekko "$count"
fi

I dette eksemplet er variabelen telle spesifiserer en tilstand som brukes som en del av hvis uttalelse. Før hvis setningen utføres, variabelen telle er tildelt verdien 5. De hvis uttalelse sjekker deretter om verdien av telle er 5. Hvis det er tilfellet, uttalelsen mellom søkeordene deretter og fi blir henrettet. Ellers, eventuelle uttalelser etter hvis uttalelsen blir utført.

Nøkkelordet fi er hvis stavet baklengs. Bash-skriptspråket bruker denne konvensjonen for å markere slutten på et komplekst uttrykk, for eksempel en hvis uttalelse eller sak uttalelse.

De ekko setningen skriver ut argumentet, i dette tilfellet verdien av variabelen telle, til terminalvinduet. Innrykk av koden mellom nøkkelordene til hvis uttalelse forbedrer lesbarheten, men er ikke nødvendig.

Bash If-uttalelse med Else

Hvis du har en situasjon der et kodestykke bare skal kjøres hvis en betingelse ikke er sann, bruk nøkkelordet ellers i en hvis uttalelse, som i dette eksemplet:

telle=5
if [ $count == 5 ]
deretter
ekko "$count"
ellers
ekko "tall er ikke 5"
fi

Hvis tilstanden $count == 5 er sant, skriver systemet ut verdien av variabelen telle. Ellers skriver den ut strengen antallet er ikke 5.

Bash If-uttalelse med Elif

Hvis du vil skille mellom flere forhold, bruk nøkkelordet elif, som er avledet fra eller hvis, som i dette eksemplet:

if [ $count == 5 ]
deretter
ekko "telling er fem"
elif [ $count == 6 ]
deretter
ekko "telling er seks"
ellers
ekko "ingen av de ovennevnte"
fi

Hvis telle er 5, skriver systemet ut teller er fem. Hvis telle er det ikke 5 men 6, skriver systemet ut teller er seks. Hvis det er verken 5 heller ikke 6, skriver systemet ut ingen av de ovennevnte.

Du kan ha et hvilket som helst antall elif klausuler. Et eksempel på flere elif betingelsene er:

if [ $count == 5 ]
deretter
ekko "telling er fem"
elif [ $count == 6 ]
deretter
ekko "telling er seks"
elif [ $count == 7 ]
deretter
ekko "tellingen er syv"
elif [ $count == 8 ]
deretter
ekko "telling er åtte"
elif [ $count == 9 ]
deretter
ekko "tellingen er ni"
ellers
ekko "ingen av de ovennevnte"
fi
Bash Case-uttalelse

En mer kompakt måte å skrive slike utsagn med flere betingelser er sak metode. Den fungerer på samme måte som hvis uttalelse med flere elif klausuler, men er mer kortfattet. For eksempel kan kodebiten ovenfor skrives om med sak uttalelse som følger:

tilfellet "$count" i
5)
ekko "telling er fem"
;;
6)
ekko "telling er seks"
;;
7)
ekko "tellingen er syv"
;;
8)
ekko "telling er åtte"
;;
9)
ekko "tellingen er ni"
;;
*)
ekko "ingen av de ovennevnte"
esac
Bash If-setning i While-løkken

hvis uttalelser brukes ofte inne for-løkker eller while-løkker, som i dette eksemplet:

telle=1
ferdig=0
mens [ $count -le 9 ]
gjøre
sove 1
(( telle++ ))
if [ $count == 5 ]
deretter
Fortsette
fi
ekko "$count"
ferdig
ekko Fullført

Du kan også ha nestet hvis uttalelser. Den enkleste nestede hvis uttalelsen er av formen: hvis...så...annes...hvis...da...fi...fi. Imidlertid, en hvis setningen kan nestes med vilkårlig kompleksitet.

Se også hvordan sende argumenter til et bash-skript, som viser hvordan du bruker betingelser for å behandle parametere som sendes fra kommandolinje.

Bash-skallet gir andre programmeringskonstruksjoner, for eksempel for-loops, while-loops og aritmetiske uttrykk.