50% korting alle plannen, beperkte tijd. Beginnend om $2.48/mo
Nog 10 minuten
Servers en besturingssystemen

Bash If-instructie: syntaxis, variaties, gebruiksscenario's, opdrachten en meer!

Pius Bodenmann By Pius Bodenmann 10 minuten lezen Bijgewerkt op 28 januari 2024
bash-scripting

Bij shell-scripting spelen Bash if-instructies een cruciale rol doordat programmeurs voorwaardelijke uitvoeringspaden kunnen creëren op basis van verschillende situaties. Kortom, als uitspraken ons in staat stellen beslissingen te nemen binnen Bash-scripts, rekening houdend met factoren als testresultaten, gebruikersinvoer of systeemstatussen. Het is als een manier om door verschillende mogelijkheden te navigeren.

Bij gebruik van Bash-scripts volgt een if-instructie een specifieke structuur. Het begint meestal met de “if” trefwoord, gevolgd door de voorwaarde die moet worden geëvalueerd, de “Dan”-trefwoord en een of meer opdrachten die moeten worden uitgevoerd als aan de voorwaarde wordt voldaan.

Om de zaken flexibeler te maken, kan de if-instructie ook een optionele “elif"(else if)-instructie, die van pas komt als de initiële voorwaarde onwaar is. Hiermee kunnen we een aanvullende voorwaarde testen en dienovereenkomstig verder gaan. Bovendien kan de if-instructie een optionele 'else'-instructie hebben, die wordt uitgevoerd als geen van de voorwaarden waar is.

Door if-instructies te combineren met andere Bash-opdrachten en functies van shell-scripting, kunnen programmeurs geavanceerde scripts maken die complexe taken en processen kunnen automatiseren. Blijf rondhangen om meer te ontdekken over de Bash if-instructie, inclusief de syntaxis, gebruiksscenario's en voorbeelden!

Bash If-instructiesyntaxis

Bash-syntaxis verwijst naar de regels die de structuur en grammatica bepalen van opdrachten en scripts die zijn geschreven in de Bash-shelltaal. De Bash-syntaxis bevat een verscheidenheid aan constructies en elementen, zoals:

  • Commando's: dit zijn de afzonderlijke uitvoerbare programma's of ingebouwde shell-ins die worden gebruikt om specifieke taken uit te voeren. Je zult het grootste deel van de tijd dat je met Bash-programmering bezig bent, besteden aan deze mooie regels.
  • Argumenten: dit zijn waarden die worden doorgegeven aan opdrachten om opties, parameters of invoergegevens op te geven. Beschouw ze als voorwaarden die worden gesteld aan een opdracht om de uitvoeringsparameters ervan te specificeren.
  • Variabelen: dit zijn symbolen die waarden vertegenwoordigen die kunnen worden toegewezen, gemanipuleerd of gebruikt in expressies. Ze worden vaak gebruikt om de waarden te bepalen waarmee zowel opdrachten als argumenten te maken hebben.
  • Omleiding: dit is het proces waarbij invoer, uitvoer of fouten worden omgeleid naar of van bestanden, apparaten of andere opdrachten. Zonder deze is de kans groot dat uw opdrachten zich op de verkeerde bestemming richten en uw code verpesten.
  • Pijpen: Dit is een mechanisme om de uitvoer van één commando te verbinden met de invoer van een ander commando. Deze worden over het algemeen gebruikt om geavanceerde voorwaardelijke opdrachtregels in grote programma's uit te voeren en om met elkaar verweven opdrachtregels te creëren.
  • Controlestructuren: Dit zijn constructies die de stroom van uitvoering van opdrachten regelen, zoals lussen, conditionals en functies. Het begrijpen van de besturingsstructuur is essentieel bij het maken van nieuwe opdrachtregels en geeft een extra niveau van diepgang aan uw code.
  • Opmerkingen: dit zijn annotaties die door de shell worden genegeerd en worden gebruikt om code te documenteren of uitleg te geven. Dit zijn belangrijke referentiepunten bij het uitvoeren van analyses en foutopsporing, vooral bij groepsprojecten.

De Bash-syntaxis moet correct worden geschreven zodat de shell opdrachten kan interpreteren en uitvoeren. Syntaxisfouten kunnen ervoor zorgen dat de shell foutmeldingen of onverwacht gedrag produceert.

Hier is de Bash if-instructie in actie:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

In het geval dat we hier hebben, verwijst de ‘voorwaarde’ naar een test die een resultaat oplevert dat waar of onwaar is. Wanneer de voorwaarde waar is, worden de volgende opdrachten die na het sleutelwoord “then” zijn opgegeven, uitgevoerd. Laten we nu zeggen dat we in plaats daarvan een aanvullende voorwaarde willen evalueren. We kunnen hiervoor het trefwoord ‘elif’ gebruiken. Het biedt een manier om een ​​andere mogelijkheid te overwegen. Als geen van de voorwaarden waar is, komen de commando's die na het trefwoord 'else' zijn opgegeven in het spel. Het is als een noodplan. Ten slotte gebruiken we het trefwoord “if” om de conclusie van de if-instructie aan te geven.

Hoe werken Bash-verklaringen?

Als het gaat om Bash-scripting, wordt de if-instructie erg handig bij het begeleiden van de scriptstroom op basis van de uitkomst van een voorwaardelijke test. Het doel ervan draait om het beoordelen van een voorwaarde en, als blijkt dat deze waar is, het uitvoeren van een specifieke reeks opdrachten.

Laten we nu eens kijken hoe dingen zich gewoonlijk ontvouwen als een if-instructie een rol speelt in een Bash-script. Het script heeft even de tijd nodig om de voorwaarde te evalueren die in de if-instructie wordt vermeld. Mocht de voorwaarde waar blijken te zijn, dan zijn de commando's in het 'toen'-blok aan de beurt om uit te voeren.

Als de voorwaarde echter onwaar is, evalueert het script eventuele aanvullende elif-voorwaarden. Als een van deze voorwaarden waar is, worden de opdrachten van het overeenkomstige elif-blok uitgevoerd. In gevallen waarin geen van de voorwaarden die zijn gespecificeerd in de if- en elif-instructies waar lijkt te zijn, erkent het script dit en gaat het verder met het uitvoeren van de opdrachten die zijn gespecificeerd in het else-blok (als er een else-blok is opgenomen).

In wezen dient de if-instructie als een middel om de besluitvorming binnen een script te vergemakkelijken, waardoor het verschillende uitvoeringspaden kan doorlopen, afhankelijk van het resultaat van de test. De test zelf kan rekening houden met verschillende factoren, zoals de uitkomst van een commando of de waarde die aan een variabele wordt toegekend.

Bash If-verklaring geïllustreerd

Laten we nu de basistheorie verlaten en kijken hoe een Bash if-instructie kan worden gebruikt bij een actieve ontwikkeling van codering. Hier is een voorbeeld dat laat zien hoe een Bash if-instructie werkt:

#!/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

In dit voorbeeld evalueert de if-instructie de waarde van de variabele x. Als x groter is dan 4, voert het script de opdracht uit om “x is groter dan 4” af te drukken. Als x kleiner is dan of gelijk is aan 4, voert het script de opdracht uit om “x is kleiner dan of gelijk aan 4” af te drukken.

Nu je een goed begrip hebt van de naakte Bash If-verklaring en hoe deze werkt, gaan we dieper in op de variaties en gerelateerde opdrachten en meer leren over Basic If-instructies, geneste If-instructies, Bash If Else, If Elif Else en Case-instructies één voor één.

Basis If-verklaringen

Laten we beginnen met de basis bash if-instructie. De if-instructie in Bash controleert of een voorwaarde waar is en voert dienovereenkomstig een blok met gerelateerde codes uit. Hier is de syntaxis:

if [ condition ]
then
  commands
fi

In het geval dat we hier hebben, evalueert het script de voorwaarde, en als deze waar is, worden de opgegeven opdrachten uitgevoerd. Als de voorwaarde onwaar is, gaat het script naar de volgende opdracht zonder het blok binnen de sectie 'dan' uit te voeren.

Geneste If-instructies

Een geneste if-instructie is, zoals de creatieve naam al aangeeft, een if-instructie die is 'genest' in een andere if-instructie. Deze geneste structuur maakt complexere tests en analyses binnen een script mogelijk. Hier is een voorbeeld van een geneste if-instructie:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Je kunt aan de commando's zien dat het script condition1 als eerste stap evalueert. Als voorwaarde1 als waar wordt geverifieerd, wordt voorwaarde2 geëvalueerd. Als voorwaarde2 ook waar is, voert het script de benodigde opdrachten uit.

Bash If Else-verklaringen

Met de Bash if else-instructie kunt u binnen uw script beslissingen nemen op basis van de vraag of een voorwaarde waar of onwaar is, waardoor een geavanceerdere uitvoering van situationele code mogelijk is. Zo ziet de structuur eruit:

if [ condition ]
then
  commands1
else
  commands2
fi

Deze constructie zorgt ervoor dat als aan de voorwaarde wordt voldaan, uw script snel “commands1” uitvoert. Als de voorwaarde echter onwaar is, wordt overgeschakeld naar het uitvoeren van “commands2”.

Als Elif Else-verklaringen

Soms moet u rekening houden met meerdere aandoeningen en hun respectievelijke uitkomsten. Met de if elif else-verklaring kunt u precies dat bereiken. Houd rekening met de volgende syntaxis:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Hier evalueert uw script eerst condition1. Als het geverifieerd is waar; het zal snel opdrachten uitvoeren1. Als voorwaarde1 echter onwaar is, gaat uw script verder met het evalueren van voorwaarde2. Als voorwaarde2 waar is, gaat het verder met het uitvoeren van commando's2. En als zowel voorwaarde1 als voorwaarde2 onwaar blijken te zijn, zal uw script voor het alternatief kiezen, namelijk het uitvoeren van opdrachten3.

Casusverklaringen

In Bash heb je de case-instructie, die op dezelfde manier functioneert als een switch-instructie die je in andere programmeertalen aantreft. Het biedt een manier om verschillende sets opdrachten uit te voeren op basis van de waarde van een variabele. Kijk eens naar de structuur:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Hier evalueert het script de expressievariabele en vergelijkt deze met verschillende patronen. Wanneer er een match wordt gevonden, wordt de bijbehorende reeks opdrachten uitgevoerd. Als er echter geen overeenkomst wordt gevonden, worden de standaardopdrachten correct uitgevoerd. Het asterisk (*)-patroon fungeert als een jokerteken en komt overeen met alles dat nog niet is bedekt.

Bash logische operatoren

Een ander belangrijk onderdeel van de Bash if-instructie-machinaties is de logische operator. Met deze operators kunt u meerdere voorwaarden samenvoegen, zodat u beslissingen kunt nemen op basis van de waarheid of onwaarheid van deze gecombineerde voorwaarden. Bash bevat drie primaire logische operatoren voor gebruik in if-instructies. Hier volgen voorbeelden van de drie hoofdtypen logische operatoropdrachten.

  • Bash EN (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logisch of (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Niet gelijk aan:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Conclusie

In deze blogpost hebben we een inleidende handleiding gegeven over Bash if-instructies en hoe u deze kunt gebruiken. We hebben ook besproken hoe ze uw code veel netter en functioneler kunnen maken. Door deze voorwaardelijke instructies effectief te gebruiken, kunt u krachtige scripts maken die complexe taken en besluitvorming aankunnen.

Ben je nieuw in de wereld van Linux? Laat ons uw gids zijn op deze spannende reis! Ons Linux-VPS is het perfecte startpunt voor beginners en biedt eenvoud zonder in te boeten aan kracht. Met gebruiksvriendelijke interfaces en deskundige ondersteuning zult u het gemakkelijker dan ooit vinden om de mogelijkheden van een Linux-server te benutten. Of u nu een website opzet, applicaties test of de enorme wereld van Linux verkent, onze Linux VPS biedt een veilige en probleemloze omgeving. Zet met vertrouwen je eerste stappen in het Linux-universum – bekijk vandaag nog onze Linux VPS-opties en begin aan je Linux-avontuur!

Linux VPS-hosting

Koop een goedkope of premium Linux VPS voor het hosten van uw website of externe desktop, tegen de goedkoopste prijs die er is. VPS Draait op Linux KVM voor meer efficiëntie en werkt op krachtige hardware met NVMe SSD-opslag voor hogere snelheid.

Lees meer

Veelgestelde vragen

Kan ik logische operatoren gebruiken in Bash if-instructies?

Ja, u kunt logische operatoren gebruiken, zoals ‘&’ En ‘||’ in Bash if-instructies. Bijvoorbeeld, als [ $var -gt 0 ] && [ $var -lt 10 ]; Dan … zal het codeblok uitvoeren als $var groter dan 0 en kleiner dan 10 is.

Kan ik meerdere voorwaarden in één if-instructie gebruiken?

Ja, u kunt de Bash if meerdere voorwaarden in één if-instructie gebruiken door logische operators te gebruiken, zoals -a (EN) of -o (OR) om ze te combineren. Bijvoorbeeld, if [ $var -gt 0 -a $var -lt 10 ]; Dan … zal het codeblok uitvoeren als $var is groter dan 0 EN kleiner dan 10.

Kan ik opdrachtvervanging gebruiken in Bash if-instructies?

Ja, je kunt opdrachtvervanging gebruiken in Bash if-instructies door de opdracht in te sluiten $() of backticks (). Bijvoorbeeld, if [$(whoami) == “root” ]; Dan … zal het codeblok uitvoeren als de huidige gebruiker root is.

[[ vs [ vs ( vs ((: Wat is het verschil tussen deze Bash-operatoren?

Kortom, [[ wordt gebruikt voor geavanceerde voorwaardelijke tests. [ wordt gebruikt voor elementaire voorwaardelijke tests. ( wordt gebruikt voor het groeperen van subshells en het uitvoeren van opdrachten. (( wordt gebruikt voor rekenkundige bewerkingen.

 

Deel

Meer van de blog

Blijf lezen.

De beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud-omslagafbeelding met app-panelen rond een Cosmos-dashboard.
Servers en besturingssystemen

Beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud: bestanden, media, wachtwoorden, automatisering en meer!

Misschien heb je Cosmos Cloud opgezet en wil je nu kijken welke apps er goed bij passen, of misschien heb je nog niet eens voor Cosmos gekozen en wil je gewoon kijken hoe goed het bij je werk past.

Niek ZilverNiek Zilver 16 minuten lezen
Potainer vs Cosmos Cloud voor het beheren van Docker Apps-omslag met hybride installatiediagram en neon-ops versus toegangsblokken.
Servers en besturingssystemen

Portainer versus Cosmos Cloud: het beste geschikt voor Docker-appbeheer

Als je Docker al kent en gewoon een schonere manier wilt om een ​​groeiende app-stack uit te voeren, dan is hier het korte antwoord op Potainer versus Cosmos Cloud. Potainer is de sterkere keuze voor direc

Niek ZilverNiek Zilver 14 minuten lezen
Cosmos Cloud vs CasaOS vs Umbrel functieafbeelding die drie zelf-gehoste paden binnen één abstracte cloudnetwerkwereld laat zien.
Servers en besturingssystemen

Cosmos Cloud versus CasaOS versus Umbrel: welk zelfgehoste platform past bij uw configuratie?

Het korte antwoord is dat CasaOS nog steeds de gemakkelijkste plek is om te beginnen, Umbrel het schoonste samengestelde gevoel heeft en Cosmos Cloud logischer is als je meer controle over doma wilt.

Niek ZilverNiek Zilver 11 minuten lezen

Klaar om te implementeren? Vanaf $ 2,48/maand.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.