50 % Rabatt alle Pläne, begrenzte Zeit. Beginnend bei $2.48/mo
Noch 10 Minuten übrig
Server und Betriebssystem

Bash If-Anweisung: Syntax, Variationen, Anwendungsfälle, Befehle und mehr!

Pius Bodenmann By Pius Bodenmann 10 Min. Lektüre Aktualisiert am 28. Januar 2024
Bash-Skripting

Beim Shell-Scripting spielen Bash-If-Anweisungen eine entscheidende Rolle, da sie es Programmierern ermöglichen, bedingte Ausführungspfade basierend auf verschiedenen Situationen zu erstellen. Grundsätzlich ermöglichen if-Anweisungen es uns, innerhalb von Bash-Skripten Entscheidungen zu treffen und dabei Faktoren wie Testergebnisse, Benutzereingaben oder Systemzustände zu berücksichtigen. Es ist wie eine Möglichkeit, durch verschiedene Möglichkeiten zu navigieren.

Bei der Verwendung von Bash-Skripten folgt eine if-Anweisung einer bestimmten Struktur. Es beginnt normalerweise mit „ifSchlüsselwort, gefolgt von der Bedingung, die ausgewertet werden muss, dem „Dann”-Schlüsselwort und einen oder mehrere Befehle, die ausgeführt werden sollen, wenn die Bedingung wahr ist.

Um die Dinge flexibler zu gestalten, kann die if-Anweisung auch ein optionales „elif„(else if)-Anweisung, die ins Spiel kommt, wenn die Anfangsbedingung falsch ist. Sie ermöglicht es uns, eine zusätzliche Bedingung zu testen und entsprechend fortzufahren. Darüber hinaus kann die if-Anweisung eine optionale „else“-Anweisung haben, die ausgeführt wird, wenn keine der Bedingungen zutrifft.

Durch die Kombination von if-Anweisungen mit anderen Bash-Befehlen und Funktionen der Shell-Skripterstellung können Programmierer erweiterte Skripts erstellen, mit denen sich komplexe Aufgaben und Prozesse automatisieren lassen. Bleiben Sie hier, um mehr über die Bash-if-Anweisung zu erfahren, einschließlich ihrer Syntax, Anwendungsfälle und Beispiele!

Bash If-Anweisungssyntax

Unter Bash-Syntax versteht man die Regeln, die die Struktur und Grammatik von Befehlen und Skripten regeln, die in der Bash-Shell-Sprache geschrieben sind. Die Bash-Syntax umfasst eine Vielzahl von Konstrukten und Elementen, wie zum Beispiel:

  • Befehle: Dies sind die einzelnen ausführbaren Programme oder Shell-Integrationen, die zur Ausführung bestimmter Aufgaben verwendet werden. Mit diesen schönen Zeilen werden Sie die meiste Zeit mit der Bash-Programmierung verbringen.
  • Argumente: Dies sind Werte, die an Befehle übergeben werden, um Optionen, Parameter oder Eingabedaten anzugeben. Betrachten Sie sie als Bedingungen, die für einen Befehl festgelegt werden, um seine Ausführungsparameter anzugeben.
  • Variablen: Dies sind Symbole, die Werte darstellen, die zugewiesen, manipuliert oder in Ausdrücken verwendet werden können. Sie werden häufig verwendet, um die Werte zu bestimmen, mit denen sowohl Befehle als auch Argumente umgehen müssen.
  • Umleitung: Dies ist der Prozess der Umleitung von Eingaben, Ausgaben oder Fehlern zu oder von Dateien, Geräten oder anderen Befehlen. Ohne diese besteht eine hohe Wahrscheinlichkeit, dass Ihre Befehle auf das falsche Ziel abzielen und Ihren Code durcheinander bringen.
  • Rohre: Dies ist ein Mechanismus zum Verbinden der Ausgabe eines Befehls mit der Eingabe eines anderen Befehls. Diese werden im Allgemeinen verwendet, um erweiterte bedingte Befehlszeilen in großen Programmen auszuführen und miteinander verwobene Befehlszeilen zu erstellen.
  • Kontrollstrukturen: Dies sind Konstrukte, die den Ausführungsfluss von Befehlen steuern, z. B. Schleifen, Bedingungen und Funktionen. Das Verständnis der Kontrollstruktur ist der Schlüssel zum Erstellen neuartiger Befehlszeilen und verleiht Ihrem Code eine weitere Ebene der Tiefe.
  • Kommentare: Dies sind Anmerkungen, die von der Shell ignoriert werden und zur Dokumentation von Code oder zur Bereitstellung von Erklärungen verwendet werden. Dies sind wichtige Bezugspunkte bei der Durchführung von Analysen und Debugging, insbesondere in Gruppenprojekten.

Die Bash-Syntax muss korrekt geschrieben sein, damit die Shell Befehle interpretieren und ausführen kann. Syntaxfehler können dazu führen, dass die Shell Fehlermeldungen oder unerwartetes Verhalten erzeugt.

Hier ist die Bash if-Anweisung in Aktion:

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

In dem Fall, den wir hier haben, bezieht sich die „Bedingung“ auf einen Test, der entweder ein wahres oder ein falsches Ergebnis liefert. Wenn die Bedingung wahr ist, werden die nachfolgenden Befehle ausgeführt, die nach dem Schlüsselwort „then“ angegeben sind. Nehmen wir nun an, wir möchten stattdessen eine zusätzliche Bedingung auswerten. Dazu können wir das Schlüsselwort „elif“ verwenden. Es bietet eine Möglichkeit, eine andere Möglichkeit in Betracht zu ziehen. Wenn nun keine der Bedingungen zutrifft, kommen die nach dem Schlüsselwort „else“ angegebenen Befehle ins Spiel. Es ist wie ein Fallback-Plan. Um schließlich die Schlussfolgerung der if-Anweisung anzuzeigen, verwenden wir das Schlüsselwort „if“.

Wie funktionieren Bash-Anweisungen?

Wenn es um Bash-Skripting geht, ist die if-Anweisung sehr praktisch, um den Skriptfluss basierend auf dem Ergebnis eines Bedingungstests zu steuern. Sein Zweck besteht darin, einen Zustand zu beurteilen und, wenn er sich als wahr erweist, einen bestimmten Satz von Befehlen auszuführen.

Werfen wir nun einen Blick darauf, wie sich die Dinge normalerweise entwickeln, wenn eine if-Anweisung in einem Bash-Skript ins Spiel kommt. Das Skript benötigt einen Moment, um die in der if-Anweisung erwähnte Bedingung auszuwerten. Sollte sich die Bedingung als wahr erweisen, werden die im „then“-Block aufgeführten Befehle ausgeführt.

Wenn die Bedingung jedoch falsch ist, wertet das Skript alle weiteren Elif-Bedingungen aus. Wenn eine dieser Bedingungen zutrifft, werden die Befehle des entsprechenden elif-Blocks zur Ausführung weitergeleitet. In Fällen, in denen keine der in den if- und elif-Anweisungen angegebenen Bedingungen wahr zu sein scheint, erkennt das Skript dies und führt die im else-Block angegebenen Befehle aus (sofern ein else-Block enthalten ist).

Im Wesentlichen dient die if-Anweisung dazu, die Entscheidungsfindung innerhalb eines Skripts zu erleichtern und es ihm zu ermöglichen, je nach Testergebnis unterschiedliche Ausführungspfade zu durchlaufen. Der Test selbst kann verschiedene Faktoren berücksichtigen, beispielsweise das Ergebnis eines Befehls oder den einer Variablen zugewiesenen Wert.

Bash If-Anweisung am Beispiel

Lassen Sie uns nun die grundlegende Theorie verlassen und sehen, wie eine Bash-if-Anweisung in einer aktiven Entwicklung der Codierung verwendet werden kann. Hier ist ein Beispiel, das zeigt, wie eine Bash-if-Anweisung funktioniert:

#!/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 diesem Beispiel wertet die if-Anweisung den Wert der Variablen x aus. Wenn x größer als 4 ist, führt das Skript den Befehl aus, um „x ist größer als 4“ auszugeben. Wenn x kleiner oder gleich 4 ist, führt das Skript den Befehl aus, um „x ist kleiner oder gleich 4“ auszugeben.

Nachdem Sie nun ein solides Verständnis der nackten Bash-If-Anweisung und ihrer Funktionsweise haben, lassen Sie uns tiefer in die Variationen und zugehörigen Befehle eintauchen und nacheinander mehr über einfache If-Anweisungen, verschachtelte If-Anweisungen, Bash If Else, If Elif Else und Case-Anweisungen erfahren.

Grundlegende If-Anweisungen

Beginnen wir mit der grundlegenden Bash-If-Anweisung. Die if-Anweisung in Bash prüft, ob eine Bedingung wahr ist und führt entsprechend einen Block verwandter Codes aus. Hier ist die Syntax:

if [ condition ]
then
  commands
fi

In dem Fall, den wir hier haben, wertet das Skript die Bedingung aus und wenn sie wahr ist, werden die angegebenen Befehle ausgeführt. Wenn die Bedingung falsch ist, geht das Skript zum nächsten Befehl über, ohne den Block im „Dann“-Abschnitt auszuführen.

Verschachtelte If-Anweisungen

Eine verschachtelte if-Anweisung ist, wie der kreative Name schon sagt, eine if-Anweisung, die in einer anderen if-Anweisung „verschachtelt“ ist. Diese verschachtelte Struktur ermöglicht komplexere Tests und Analysen innerhalb eines Skripts. Hier ist ein Beispiel für eine verschachtelte if-Anweisung:

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

An den Befehlen erkennt man, dass das Skript im ersten Schritt die Bedingung1 auswertet. Wenn Bedingung1 als wahr bestätigt wird, wird Bedingung2 ausgewertet. Wenn Bedingung2 ebenfalls wahr ist, führt das Skript die erforderlichen Befehle aus.

Bash If Else-Anweisungen

Mit der Bash-Anweisung „if else“ können Sie innerhalb Ihres Skripts Entscheidungen treffen, die darauf basieren, ob eine Bedingung wahr oder falsch ist, und ermöglichen so eine erweiterte Ausführung von Situationscode. So sieht die Struktur aus:

if [ condition ]
then
  commands1
else
  commands2
fi

Dieses Konstrukt stellt sicher, dass Ihr Skript „commands1“ schnell ausführt, wenn die Bedingung erfüllt ist. Wenn die Bedingung jedoch falsch ist, wird auf die Ausführung von „commands2“ umgeschaltet.

If Elif Else Statements

Manchmal müssen Sie mehrere Bedingungen und ihre jeweiligen Ergebnisse berücksichtigen. Mit der if elif else-Anweisung können Sie genau das erreichen. Beachten Sie die folgende Syntax:

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

Hier wertet Ihr Skript zuerst Bedingung1 aus. Wenn es sich als wahr erwiesen hat; Es führt Befehle schnell aus1. Wenn Bedingung1 jedoch falsch ist, fährt Ihr Skript mit der Auswertung von Bedingung2 fort. Wenn Bedingung2 wahr ist, wird mit der Ausführung von Befehlen2 fortgefahren. Und wenn sich herausstellt, dass sowohl Bedingung1 als auch Bedingung2 falsch sind, wählt Ihr Skript die Alternative, die Befehle3 ausführt.

Falldarstellungen

In Bash gibt es die case-Anweisung, die ähnlich wie eine switch-Anweisung in anderen Programmiersprachen funktioniert. Es bietet eine Möglichkeit, verschiedene Befehlssätze basierend auf dem Wert einer Variablen auszuführen. Schauen Sie sich die Struktur an:

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

Hier wertet das Skript die Ausdrucksvariable aus und gleicht sie mit verschiedenen Mustern ab. Wenn eine Übereinstimmung gefunden wird, wird der entsprechende Befehlssatz ausgeführt. Wenn jedoch keine Übereinstimmung gefunden wird, werden die Standardbefehle ordnungsgemäß ausgeführt. Das Sternchenmuster (*) fungiert als Platzhalter und passt auf alles, was nicht abgedeckt wurde.

Logische Bash-Operatoren

Ein weiterer wichtiger Bestandteil der Bash-IF-Anweisungsmaschenschaften ist der logische Operator. Mit diesen Operatoren können Sie mehrere Bedingungen zusammenführen und Entscheidungen auf der Grundlage der Wahrheit oder Falschheit dieser kombinierten Bedingungen treffen. Bash enthält drei primäre logische Operatoren zur Verwendung in if-Anweisungen. Hier sind Beispiele für die drei Haupttypen logischer Operatorbefehle.

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

Abschluss

In diesem Blogbeitrag haben wir eine Einführung in Bash-IF-Anweisungen und deren Verwendung bereitgestellt. Wir haben auch besprochen, wie sie Ihren Code viel übersichtlicher und funktionaler machen können. Durch den effektiven Einsatz dieser bedingten Anweisungen können Sie leistungsstarke Skripts erstellen, die komplexe Aufgaben und Entscheidungen bewältigen können.

Sind Sie neu in der Linux-Welt? Lassen Sie uns Ihr Leitfaden auf dieser aufregenden Reise sein! Unser Linux-VPS ist der perfekte Ausgangspunkt für Anfänger und bietet Einfachheit ohne Einbußen bei der Leistung. Mit benutzerfreundlichen Schnittstellen und fachkundigem Support wird es für Sie einfacher denn je, die Funktionen eines Linux-Servers zu nutzen. Egal, ob Sie eine Website einrichten, Anwendungen testen oder die weite Welt von Linux erkunden, unser Linux-VPS bietet eine sichere und problemlose Umgebung. Machen Sie mit Zuversicht Ihre ersten Schritte in das Linux-Universum – schauen Sie sich noch heute unsere Linux-VPS-Optionen an und begeben Sie sich auf Ihr Linux-Abenteuer!

Linux VPS-Hosting

Holen Sie sich einen kostengünstigen oder Premium-Linux-VPS zum Hosten Ihrer Website oder Ihres Remote-Desktops zum günstigsten Preis. VPS läuft auf Linux KVM für höhere Effizienz und arbeitet auf leistungsstarker Hardware mit NVMe-SSD-Speicher für höhere Geschwindigkeit.

Mehr lesen

FAQ

Kann ich logische Operatoren in Bash-IF-Anweisungen verwenden?

Ja, Sie können logische Operatoren verwenden, z „&“ Und „||“ in Bash if-Anweisungen. Zum Beispiel, if [ $var -gt 0 ] && [ $var -lt 10 ]; Dann … führt den Codeblock aus, wenn $var ist größer als 0 und kleiner als 10.

Kann ich mehrere Bedingungen in einer einzigen if-Anweisung verwenden?

Ja, Sie können die Bash verwenden, wenn mehrere Bedingungen in einer einzigen if-Anweisung verwendet werden, indem Sie logische Operatoren wie verwenden -a (UND) oder -o (ODER), um sie zu kombinieren. Zum Beispiel, if [ $var -gt 0 -a $var -lt 10 ]; Dann … führt den Codeblock aus, wenn $var ist größer als 0 UND kleiner als 10.

Kann ich die Befehlsersetzung in Bash-IF-Anweisungen verwenden?

Ja, Sie können die Befehlsersetzung in Bash-IF-Anweisungen verwenden, indem Sie den Befehl einschließen $() oder Backticks (). Zum Beispiel, if [ $(whoami) == „root“ ]; Dann … führt den Codeblock aus, wenn der aktuelle Benutzer Root ist.

[[ vs [ vs ( vs ((: Was ist der Unterschied zwischen diesen Bash-Operatoren?

Kurz gesagt, [[ wird für erweiterte bedingte Tests verwendet. [ wird für grundlegende bedingte Tests verwendet. ( wird für die Subshell-Gruppierung und Befehlsausführung verwendet. (( wird für arithmetische Operationen verwendet.

 

Aktie

Mehr aus dem Blog

Lesen Sie weiter.

Titelbild der besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können, mit App-Panels rund um ein Cosmos-Dashboard.
Server und Betriebssystem

Die besten selbstgehosteten Apps, die Sie mit Cosmos Cloud ausführen können: Dateien, Medien, Passwörter, Automatisierung und mehr!

Vielleicht haben Sie Cosmos Cloud eingerichtet und möchten nun sehen, welche Apps gut dazu passen, oder vielleicht haben Sie sich noch nicht einmal für Cosmos entschieden und möchten einfach nur sehen, wie gut es zu Ihrer Arbeit passt

Nick SilverNick Silver 16 Min. Lektüre
Abdeckung von Portainer vs. Cosmos Cloud für die Verwaltung von Docker-Apps mit Hybrid-Setup-Diagramm und Neon-Ops vs. Zugriffsblöcken.
Server und Betriebssystem

Portainer vs. Cosmos Cloud: Beste Lösung für Docker-App-Management

Wenn Sie Docker bereits kennen und nur die sauberere Möglichkeit suchen, einen wachsenden App-Stack auszuführen, finden Sie hier die kurze Antwort auf Portainer vs. Cosmos Cloud. Portainer ist die stärkere Wahl für Direc

Nick SilverNick Silver 14 Min. Lektüre
Die Funktionsgrafik Cosmos Cloud vs. CasaOS vs. Umbrel zeigt drei selbstgehostete Pfade innerhalb einer abstrakten Cloud-Netzwerkwelt.
Server und Betriebssystem

Cosmos Cloud vs. CasaOS vs. Umbrel: Welche selbstgehostete Plattform passt zu Ihrem Setup?

Die kurze Antwort ist, dass CasaOS immer noch der einfachste Ausgangspunkt ist, Umbrel das sauberste kuratierte Gefühl hat und Cosmos Cloud sinnvoller ist, wenn Sie eine strengere Kontrolle über Doma wünschen

Nick SilverNick Silver 11 Min. Lektüre

Bereit zur Bereitstellung? Ab 2,48 $/Monat.

Unabhängige Cloud, seit 2008. AMD EPYC, NVMe, 40 Gbit/s. 14 Tage Geld-zurück-Garantie.