Brug af if…else-sætningen i Bash til betinget kodeudførelse.
Bash (Bourne Again Shell) er en shell-kommandoprompt og scriptsprog i GNU/Linux-operativsystemer. Det er standardskallen for de fleste Linux-distributioner.
Betingede udsagn er afgørende i ethvert programmeringssprog, både kompilerede og scriptede. De lader brugeren udføre et stykke kode baseret på en foruddefineret betingelse, som er et af grundlaget for programmeringslogik. I denne artikel vil vi lære, hvordan du bruger hvis ellers
betinget erklæring i Bash.
Introduktion
Det hvis ellers
sætning i Bash lader brugeren manipulere strømmen af kode baseret på forhold. Brugeren kan angive separate kodeblokke, der skal udføres, hvoraf kun én til sidst vil blive eksekveret under kørsel, baseret på den tilsvarende betingelse, som er opfyldt.
Bemærk, at der kan specificeres mere end to betingelser, for hvilke elif
erklæring kan bruges. Brugeren kan angive et hvilket som helst antal betingelser vha elif
, og endelig en standardbetingelse ved hjælp af andet
blok. Lad os se mere om dette i syntaksen og eksemplerne nedenfor.
Generel syntaks
Den generelle syntaks for hvis ellers
udtalelse i Bash er:
hvis så andet fi
Her, hvis opfylder, dvs. hvis den returnerer 0 (succes), så udføres kodeblok 1. Hvis betingelsen ikke returnerer 0, dvs. den returnerer en fejlstatus, så udføres kodeblokken 2. Det
hvis ellers
blok slutter med en fi
udmelding.
For flere blokke, der svarer til flere betingelser,elif
anvendes:
hvis så elif så elif så ... ... andet fi
Her kontrolleres betingelserne i rækkefølge, og kodeblokken for den første betingelse, som returnerer status 0 (succes), udføres. For eksempel. hvis Hvis ingen af betingelserne returnerer status 0, Bemærk, at For at udføre en kodeblok hvis en variabel har en bestemt værdi: Sådan tjekker du for flere værdier: Betingelserne kan være alle Linux-kommandoer. Den tilsvarende kodeblok udføres, hvis kommandoen kører med succes. I eksemplet ovenfor, siden Vi kan også rede en anden Dette er nyttigt, når et separat sæt af betingelser skal kontrolleres, når en startbetingelse er opfyldt. For eksempel forsøger følgende kode at installere en webserversoftware: Koden kontrollerer først, om Nginx allerede er installeret i systemet. Hvis det er, viser den bare en besked og afslutter. Hvis den ikke er det, forsøger den at installere Nginx. Hvis Nginx af en eller anden grund ikke kunne installeres i systemet fra pakken, forsøger den at installere Apache2. Hvis selv Apache2 giver fejl under installationen, afslutter den og viser en meddelelse om, at ingen software kunne installeres. På lignende måde kan en indlejret blok bruges inde i en I lighed med enhver Bash-kode er Brugeren kan også gemme denne kode i en scriptfil og udføre scriptfilen. Det For at give udførelsestilladelser til denne fil, kør: Til sidst, for at udføre filen, kør: Svarende til ethvert programmeringssprog, returnerer ikke-nul status (fejl), derefter
er tjekket. Hvis
returnerer status 0,
er henrettet. Herefter kontrolleres yderligere betingelser ikke, og kodeudførelsen fortsætter til koden efter
fi
udmelding. i den anden blok udføres. Bemærk, at den anden blok er valgfri. Hvis ingen betingelse er opfyldt, samt nej
andet
blok er angivet, vil ingen betinget kodeblok køre, og kodeudførelse vil fortsætte til koden efter fi
erklæring, som vist i flowgrafen nedenfor.derefter
erklæring skal kun bruges efter hvis
og elif
erklæringer og ikke påkrævet efter andet
udmelding.Eksempler
x=0 hvis [ $x -eq 0 ] derefter ekko "Værdi af X er 0" ellers ekko "Værdi af X er ikke 0" fi
x=2 if [ $x -eq 0 ] then echo "Value of X is 0" elif [ $x -eq 1 ] then echo "Value of X is 1" elif [ $x -eq 2 ] then echo "Value of X er 2" ellers ekko "Værdien af X er ikke 0" fi
hvis npm -v så ekko "NPM til stede i systemet" ellers sudo apt installer npm fi
npm
ikke var installeret i systemet, kommandoen npm -v
returnerede en ikke-nul status. Derfor gik kodeudførelsen ind i andet
blok, hvor vi installerer npm vha passende
pakke manager. Som vi kan se, fik det mig til at indtaste adgangskoden og begyndte installationen af npm.hvis ellers
blok inde i en hvis
, andet
eller elif
blok: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 installeret." ellers hvis sudo apt installerer nginx, så ekko "NGINX installation vellykket." elif sudo apt installer apache2 og ekko derefter "APACHE2 installation vellykket." else echo "Kan ikke installere nogen websoftware." fi
elif
blokere også.Eksekverer
hvis ellers
: Scripts og kommandolinjehvis ellers
statement kan bruges i Bash shell direkte eller fra en eksekverbar shell script fil. Når først Bash-tolken finder en hvis
, andet
eller elif
sætning, fortsætter den shell for at lade brugeren indtaste kodeblokken.#!/bin/bash
ved starten angiver den fortolker, der skal bruges, når filen eksekveres. Selvom Bash er den mest brugte shell i dag, foretrækker nogle brugere shells som zsh, som skal angives i stedet for bash i starten af denne fil.chmod +x test.sh
./test.sh
Konklusion
hvis ellers
statement er et grundlæggende træk ved Bash. At lære dets brug går langt i at skrive grundlæggende såvel som avancerede scripts.