Bruke if…else-setningen i Bash for betinget kodekjøring.
Bash (Bourne Again Shell) er en shell-ledetekst og skriptspråk i GNU/Linux-operativsystemer. Det er standardskallet for de fleste Linux-distribusjoner.
Betingede utsagn er avgjørende i alle programmeringsspråk, kompilert så vel som skriptet. De lar brukeren utføre et stykke kode basert på en forhåndsdefinert betingelse, som er et av grunnlaget for programmeringslogikk. I denne artikkelen lærer vi hvordan du bruker hvis ... annet
betinget uttalelse i Bash.
Introduksjon
De hvis ... annet
statement i Bash lar brukeren manipulere strømmen av kode basert på forhold. Brukeren kan spesifisere separate kodeblokker som skal utføres, hvorav bare én til slutt vil bli utført under kjøring, basert på den tilsvarende betingelsen som er oppfylt.
Merk at det kan spesifiseres mer enn to forhold, for hvilke elif
uttalelse kan brukes. Brukeren kan angi et hvilket som helst antall forhold ved å bruke elif
, og til slutt en standardbetingelse som bruker ellers
blokkere. La oss se mer om dette i syntaksen og eksemplene nedenfor.
Generell syntaks
Den generelle syntaksen for hvis ... annet
uttalelse i Bash er:
hvis da ellers fi
Her, hvis tilfredsstiller, dvs. hvis den returnerer 0 (suksess), blir kodeblokk 1 utført. Hvis tilstanden ikke returnerer 0, dvs. den returnerer en feilstatus, blir kodeblokken 2 utført. De
hvis ... annet
blokken slutter med en fi
uttalelse.
For flere blokker som tilsvarer flere forhold,elif
benyttes:
hvis da elif da elif da ... ... annet fi
Her kontrolleres betingelsene i rekkefølge og kodeblokken til den første betingelsen som returnerer status 0 (suksess) utføres. F.eks. hvis Hvis ingen av betingelsene returnerer status 0, Merk at For å utføre en kodeblokk hvis en variabel har en spesiell verdi: For å se etter flere verdier: Betingelsene kan være alle Linux-kommandoer. Den tilsvarende kodeblokken vil utføres hvis kommandoen kjører vellykket. I eksemplet ovenfor, siden Vi kan også hekke en annen Dette er nyttig når et eget sett med betingelser skal kontrolleres når en startbetingelse er oppfylt. For eksempel prøver følgende kode å installere en webserverprogramvare: Koden sjekker først om Nginx allerede er installert i systemet. Hvis det er det, viser den bare en melding og avslutter. Hvis den ikke er det, prøver den å installere Nginx. Hvis Nginx av en eller annen grunn ikke kunne installeres i systemet fra pakken, prøver den å installere Apache2. Hvis til og med Apache2 gir feil under installasjonen, avsluttes den og viser en melding om at ingen programvare kunne installeres. På lignende måte kan en nestet blokk brukes inne i en I likhet med hvilken som helst Bash-kode, er Brukeren kan også lagre denne koden i en skriptfil og kjøre skriptfilen. De For å gi utføringstillatelser for denne filen, kjør: Til slutt, for å kjøre filen, kjør: I likhet med alle programmeringsspråk, returnerer ikke null status (feil), deretter
er sjekket. Hvis
returnerer status 0,
er henrettet. Etter dette kontrolleres ikke ytterligere betingelser og kodeutførelsen fortsetter til koden etter
fi
uttalelse. i den andre blokken utføres. Merk at den andre blokken er valgfri. Hvis ingen betingelse er oppfylt, samt nei
ellers
blokken er spesifisert, ingen betinget kodeblokk vil kjøre, og kjøring av kode vil fortsette til koden etter fi
uttalelse, som vist i flytdiagrammet nedenfor.deretter
uttalelsen skal kun brukes etter hvis
og elif
uttalelser og ikke påkrevd etter ellers
uttalelse.Eksempler
x=0 hvis [ $x -eq 0 ] deretter ekko "Verdi av X er 0" ellers ekko "Verdi av X er ikke 0" fi
x=2 hvis [ $x -eq 0 ] deretter ekko "Verdi av X er 0" elif [ $x -eq 1 ] deretter ekko "Verdi av X er 1" elif [ $x -eq 2 ] deretter ekko "Verdi av X er 2" ellers ekko "Verdien av X er ikke 0" fi
hvis npm -v så ekko "NPM tilstede i systemet" ellers sudo apt installer npm fi
npm
ikke ble installert i systemet, kommandoen npm -v
returnerte en status som ikke er null. Derfor gikk kodekjøringen inn i ellers
blokk, hvor vi installerer npm ved hjelp av apt
pakkeansvarlig. Som vi kan se, ba det meg om å skrive inn passordet og begynte installasjonen av npm.hvis ... annet
blokk inne i en hvis
, ellers
eller elif
blokkere:x=0 y=1 if [ $x -eq 0 ] then echo "X is 0" if [ $y -eq 1 ] then echo "Y is 1" else echo "Y is not 1" fi else echo "X is ikke 0" fi
hvis nginx -v så ekko "NGINX er allerede installert." ellers hvis sudo apt installer nginx, så ekko "NGINX-installasjonen vellykket." elif sudo apt installer apache2 og deretter ekko "APACHE2 installering vellykket." else echo "Kan ikke installere noen webprogramvare." fi
elif
blokkere også.Utfører
hvis ... annet
: Skript og kommandolinjehvis ... annet
statement kan brukes i Bash shell direkte eller fra en kjørbar shell script fil. Når Bash-tolken finner en hvis
, ellers
eller elif
setningen, fortsetter den skallet for å la brukeren gå inn i kodeblokken.#!/bin/bash
ved starten spesifiserer tolken som skal brukes når filen kjøres. Selv om Bash er det mest brukte skallet i dag, foretrekker noen brukere skjell som zsh, som bør spesifiseres i stedet for bash i starten av denne filen.chmod +x test.sh
./test.sh
Konklusjon
hvis ... annet
uttalelse er et grunnleggende trekk ved Bash. Å lære bruken av den går langt i å skrive grunnleggende så vel som avanserte skript.