I shell scripting spiller Bash if-sætninger en afgørende rolle ved at gøre det muligt for programmører at skabe betinget udførelse baseret på forskellige situationer. Grundlæggende giver if-sætninger os mulighed for at træffe beslutninger inden for Bash-scripts, idet vi tager faktorer som testresultater, brugerinput eller systemtilstande i betragtning. Det er som en måde at navigere gennem forskellige muligheder.
Når du bruger Bash scripting, følger en if-sætning en specifik struktur. Den begynder typisk med nøgleordet "if", efterfulgt af den betingelse, der skal evalueres, nøgleordet "så", og en eller flere kommandoer, der skal udføres, hvis betingelsen er sand.
For at gøre tingene mere fleksible, kan if-sætningen også indeholde en valgfri "elif" (else if)-sætning, som kommer i spil, når den indledende betingelse er falsk. Den giver os mulighed for at teste en yderligere betingelse og handle derefter. Derudover kan if-sætningen have en valgfri "else"-sætning, der udfører sig, hvis ingen af betingelserne er sande.
Ved at kombinere if-sætninger med andre Bash-kommandoer og funktioner i shell scripting kan programmører skabe avancerede scripts, der er i stand til at automatisere komplekse opgaver og processer. Bliv for at opdage mere om Bash if-sætningen, herunder dens syntaks, use cases og eksempler!
Bash If-Statement-syntaks
Bash-syntaks refererer til de regler, der styrer strukturen og grammatikken for kommandoer og scripts skrevet i Bash shell-sproget. Bash-syntaks omfatter en række konstruktioner og elementer, såsom:
- Kommandoer: Dette er de individuelle eksekverbare programmer eller shell built-ins, der bruges til at udføre specifikke opgaver. Du vil tilbringe det meste af tiden med Bash-programmering på disse linjer.
- Argumenter: Dette er værdier, der passes til kommandoer for at angive indstillinger, parametre eller inputdata. Tænk på dem som betingelser, der sættes for en kommando for at angive dens udførelsesparametre.
- Variabler: Dette er symboler, der repræsenterer værdier, som kan tildeles, manipuleres eller bruges i udtryk. De bruges almindeligvis til at bestemme de værdier, som både kommandoer og argumenter skal håndtere.
- Omdirigering: Dette er processen med at omdirigere input, output eller fejl til eller fra filer, enheder eller andre kommandoer. Uden disse er der stor risiko for, at dine kommandoer rammer det forkerte sted og ødelægger din kode.
- Rør: Dette er en mekanisme til at forbinde outputtet fra en kommando til inputtet på en anden kommando. Disse bruges generelt til at udføre avancerede betingede kommandolinjer i store programmer og til at skabe sammenvævede kommandolinjer.
- Kontrolstrukturer: Dette er konstruktioner, der kontrollerer flowet af kommandoer, såsom loops, betingelser og funktioner. At forstå kontrolstrukturen er vigtig for at skrive nye kommandolinjer og giver et dybere lag til din kode.
- Kommentarer: Dette er kommentarer, der ignoreres af shell'en og bruges til at dokumentere kode eller give forklaringer. De er vigtige referencepunkter ved analyse og fejlfinding, især i gruppeprojekter.
Bash-syntaks skal skrives korrekt, for at shell'en kan fortolke og udføre kommandoer. Syntaksfejl kan forårsage, at shell'en producerer fejlmeddelelser eller uventet adfærd.
Her er Bash if-statement'et i aktion:
if condition then command1 command2 ... commandN elif condition2 then commandA commandB ... commandC else commandX commandY ... commandZ fi
I det tilfælde, vi har her, refererer "condition" til en test, der producerer et resultat af enten sand eller falsk. Når betingelsen er sand, udføres de efterfølgende kommandoer angivet efter nøgleordet "then". Lad os sige, at vi vil evaluere en yderligere betingelse i stedet. Vi kan bruge nøgleordet "elif" til at gøre dette. Det giver mulighed for at overveje en anden mulighed. Nu, hvis ingen af betingelserne holder stik, kommer kommandoerne angivet efter nøgleordet "else" i spil. Det er som en backup-plan. Til sidst bruger vi nøgleordet "fi" for at angive slutningen på if-statement'et.
Hvordan virker Bash-statements?
Når det kommer til Bash-scripting, bliver if-statement'et ret praktisk til at styre script'ets flow baseret på resultatet af en betinget test. Dets formål drejer sig om at evaluere en betingelse og, hvis den er sand, udføre et specifikt sæt kommandoer.
Lad os nu kaste et blik på, hvordan tingene normalt udfolder sig, når et if-statement kommer i spil i et Bash-script. Script'et bruger et øjeblik på at evaluere betingelsen nævnt i if-statement'et. Hvis betingelsen viser sig at være sand, får kommandoerne i "then"-blokken deres tur til at udføre.
Men hvis betingelsen tilfældigvis er falsk, fortsætter script'et med at evaluere eventuelle yderligere elif-betingelser. Hvis nogen af disse betingelser holder stik, træder de tilsvarende elif-bloks kommandoer op for at udføre. I tilfælde, hvor ingen af betingelserne angivet i if- og elif-statements virker til at være sande, anerkender script'et dette og fortsætter med at udføre kommandoerne angivet i else-blokken (hvis en else-blok er inkluderet).
Kort sagt fungerer if-statement'et som et middel til at lette beslutningstagning inden for et script, hvilket gør det muligt for det at gennemkøre forskellige udførelsesveje afhængigt af testens resultat. Selve testen kan tage forskellige faktorer i betragtning, såsom resultatet af en kommando eller værdien tildelt en variabel.
Bash If-Statement eksemplificeret
Lad os nu gå ud over den grundlæggende teori og se, hvordan et Bash if-statement kan bruges i en aktiv udvikling af kodning. Her er et eksempel, der demonstrerer, hvordan et Bash if-statement fungerer:
#!/bin/bash # set a variable x=5 # evaluate the variable if [ $x -gt 4 ] then echo "x is greater than 4." else echo "x is less than or equal to 4." fi
I dette eksempel evaluerer if-statement'et værdien af variablen x. Hvis x er større end 4, udføres kommandoen til at udskrive "x is greater than 4". Hvis x er mindre end eller lig med 4, udføres kommandoen til at udskrive "x is less than or equal to 4".
At lære de forskellige Bash If-Statements og relateret kommandosyntaks at kende
Nu hvor du har en solid forståelse af det grundlæggende Bash If-Statement og hvordan det fungerer, lad os dykke dybere ned i variationerne og relaterede kommandoer og lær mere om Basic If-Statements, Nested If-statements, Bash If Else, If Elif Else og Case-Statements én ad gangen.
Grundlæggende If-sætninger
Lad os starte med det grundlæggende bash if-statement. If-statement'et i Bash kontrollerer, om en betingelse er sand, og udfører en blok med relateret kode i overensstemmelse hermed. Her er syntaksen:
if [ condition ] then commands fi
I det tilfælde, vi har her, evaluerer script'et betingelsen, og hvis den holder stik, udføres de angivne kommandoer. Hvis betingelsen er falsk, fortsætter script'et til den næste kommando uden at udføre blokken inden for "then"-sektionen.
Indlejrede If-Sætninger
Et nested if-statement er, som det kreative navn antyder, et if-statement, der er "indlejret" i et andet if-statement. Denne indlejrede struktur tillader mere komplekse tests og analyser inden for et script. Her er et eksempel på et nested if-statement:
if [ condition1 ]
then
if [ condition2 ]
then
commands
fi
fi
Du kan se i kommandoerne, at scriptet evaluerer condition1 som det første trin. Hvis condition1 viser sig at være sand, evalueres condition2 derefter. Hvis condition2 også er sand, udfører scriptet de nødvendige kommandoer.
Bash If Else-udsagn
Bash if else-udsagnet giver dig mulighed for at træffe beslutninger i dit script baseret på, om en betingelse er sand eller falsk, hvilket muliggør mere avanceret situationsbestemt kodekørsel. Sådan ser strukturen ud:
if [ condition ] then commands1 else commands2 fi
Denne konstruktion sikrer, at hvis betingelsen holder, udfører scriptet omgående "commands1". Hvis betingelsen er falsk, udfører det i stedet "commands2".
If Elif Else-udsagn
Nogle gange skal du vurdere flere betingelser og deres respektive resultater. If elif else-udsagnet giver dig præcis denne mulighed. Se følgende syntaks:
if [ condition1 ] then commands1 elif [ condition2 ] then commands2 else commands3 fi
Her evaluerer scriptet condition1 først. Hvis den viser sig at være sand, udfører det omgående commands1. Hvis condition1 er falsk, evaluerer scriptet condition2. Hvis condition2 er sand, udfører det commands2. Og hvis både condition1 og condition2 viser sig at være falske, udfører scriptet det alternative, som er at udføre commands3.
Case-sætninger
I Bash har du case-udsagnet, som fungerer på samme måde som et switch-udsagn i andre programmeringssprog. Det giver dig en måde at udføre forskellige kommandosæt baseret på værdien af en variabel. Se strukturen:
case expression in pattern1) commands1;; pattern2) commands2;; pattern3) commands3;; *) default commands;; esac
Her evaluerer scriptet variable-udtrykket og sammenligner det med forskellige mønstre. Når der findes et match, udføres det tilhørende sæt kommandoer. Hvis der ikke findes noget match, udføres standardkommandoerne problemfrit. Stjernemønsteret (*) fungerer som et wildcard og matcher alt, der ikke er dækket.
Bash logiske operatorer
En anden vigtig del af Bash if-udsagnet er den logiske operator. Disse operatorer giver dig mulighed for at kombinere flere betingelser, så du kan træffe beslutninger baseret på sandheden eller løgnen af disse kombinerede betingelser. Bash indeholder tre primære logiske operatorer til brug i if-udsagn. Her er eksempler på de tre hovedtyper af logiske operatorkommandoer.
- Bash OG (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then echo "You meet the criteria for voting." fi
- Logisk eller (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then echo "Access granted." fi
- Ikke lig med:
if(( ! $a == "true" )) then echo "a" was initially false. else echo "a" was initially true. fi
Konklusion
I dette blogindlæg gav vi en introduktionsvejledning til Bash if-udsagn og hvordan du bruger dem. Vi diskuterede også, hvordan de kan gøre din kode meget renere og mere funktionel. Ved at bruge disse betingede udsagn effektivt kan du skabe kraftfulde scripts, der kan håndtere komplekse opgaver og beslutningstagning.
Er du ny i verden af Linux? Lad os være dit guidelight på denne spændende rejse! Vores Linux VPS er det perfekte udgangspunkt for begyndere og tilbyder enkelthed uden at gå på kompromis med kraft. Med brugervenlige grænseflader og ekspertunderstøttelse vil du opdage, at det er nemmere end nogensinde at udnytte mulighederne for en Linux-server. Uanset om du opsætter et websted, tester applikationer eller udforsker den enorme verden af Linux, giver vores Linux VPS et sikkert og problemfrit miljø. Tag dine første skridt ind i Linux-universet med selvtillid – tjek vores Linux VPS-muligheder i dag og begiv dig ud på dit Linux-eventyr!
Få dig en økonomi- eller premium Linux VPS til hosting af dit websted eller remote desktop til den billigste pris derude. VPS kører på Linux KVM for øget effektivitet og arbejder på kraftigt hardware med NVMe SSD-lagerplads for øget hastighed.
Læs mereOfte stillede spørgsmål
Kan jeg bruge logiske operatorer i Bash if-udsagn?
Ja, du kan bruge logiske operatorer såsom & og '||' i Bash if-udsagn. For eksempel if [ $var -gt 0 ] && [ $var -lt 10 ]; then … vil udføre kodeblokkken hvis $var er større end 0 og mindre end 10.
Kan jeg bruge flere betingelser i et enkelt if-udsagn?
Ja, du kan bruge flere betingelser i Bash i et enkelt if-udsagn ved at bruge logiske operatorer såsom -a (AND) eller -o (ELLER) til at kombinere dem. For eksempel if [ $var -gt 0 -a $var -lt 10 ]; then … vil udføre kodeblokkken hvis $var er større end 0 OG mindre end 10.
Kan jeg bruge kommandosubstitution i Bash if-statements?
Ja, du kan bruge kommandosubstitution i Bash if-statements ved at omgive kommandoen med $() eller backticks (”I'm ready to translate to Danish, but I notice your message just contains "). For example," which appears to be a fragment rather than a complete UI label to translate. Could you please provide the full English UI label you'd like me to translate to Danish? if [ $(whoami) == "root" ]; then … vil udføre kodeblokken, hvis den aktuelle bruger er root.
[[ vs [ vs ( vs ((: Hvad er forskellen mellem disse Bash-operatorer?
Kort sagt bruges [[ til avanceret betinget testing. [ bruges til grundlæggende betinget testing. ( bruges til subshell-gruppering og kommandoudførelse. (( bruges til aritmetiske operationer.