If-Anweisung
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 70 von 82.
Bisher führen Ihre Skripte jeden Befehl von oben nach unten aus, ohne jegliche Entscheidungsfindung. Aber was, wenn Sie möchten, dass Ihr Skript verschiedene Dinge je nach bestimmten Bedingungen tut? Genau hier kommt die if-Anweisung ins Spiel.
Die if-Anweisung ermöglicht es Ihrem Skript, Entscheidungen zu treffen. Sie prüft, ob eine Bedingung wahr ist, und falls ja, führt sie einen Codeblock aus. Hier ist die grundlegende Struktur:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiDie Bedingung wird in eckige Klammern mit Leerzeichen davor und danach gesetzt. Das then-Schlüsselwort markiert den Beginn des auszuführenden Codes, und fi („if“ rückwärts geschrieben) beendet die Anweisung.
Sie können den Fall, wenn die Bedingung falsch ist, auch mit else behandeln:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiGängige Vergleichsoperatoren für Zahlen umfassen -eq (gleich), -ne (ungleich), -gt (größer als), -lt (kleiner als), -ge (größer oder gleich) und -le (kleiner oder gleich). Für Strings verwenden Sie = für Gleichheit und != für Ungleichheit.
Denken Sie immer daran, Leerzeichen innerhalb der Klammern einzufügen und Ihre Variablen in Anführungszeichen zu setzen, um Fehler mit leeren Werten zu vermeiden.
Aufgabe
EinfachErstellen Sie ein Shell-Skript namens check_score.sh, das eine if-Anweisung verwendet, um eine Testnote zu bewerten.
Ihr Skript sollte:
- Mit der Shebang-Zeile beginnen (
#!/bin/bash) - Eine Variable namens
scoremit dem Wert75erstellen - Eine if-Anweisung verwenden, um zu prüfen, ob die Note größer oder gleich 70 ist
- Bei wahr: ausgeben:
You passed! - Bei falsch: ausgeben:
You failed.
Machen Sie das Skript ausführbar und führen Sie es aus. Da die Note 75 ist, sollte Ihre Ausgabe sein:
You passed!Tipp: Denken Sie daran,
-gefür den „größer oder gleich“-Vergleich zu verwenden, Leerzeichen innerhalb der eckigen Klammern einzufügen und Ihre if-Anweisung mitfizu beenden.
Spickzettel
Die if-Anweisung ermöglicht es Skripten, Entscheidungen basierend auf Bedingungen zu treffen:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiDie Bedingung wird in eckige Klammern mit Leerzeichen darum gesetzt. Verwenden Sie then, um den Anfang des Codeblocks zu markieren, und fi, um die Anweisung zu beenden.
Verwenden Sie else, um Fälle zu behandeln, wenn die Bedingung falsch ist:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiHäufige Vergleichsoperatoren:
- Zahlen:
-eq(gleich),-ne(ungleich),-gt(größer als),-lt(kleiner als),-ge(größer oder gleich),-le(kleiner oder gleich) - Zeichenketten:
=(Gleichheit),!=(Ungleichheit)
Schließen Sie immer Leerzeichen in den Klammern ein und setzen Sie Variablen in Anführungszeichen, um Fehler mit leeren Werten zu vermeiden.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Verzeichnisse
Ein Verzeichnis erstellenEin Verzeichnis kopierenEin Verzeichnis verschieben und umbenennenEin Verzeichnis löschenZusammenfassung - Verzeichnisoperationen7Dateiinhalt
Head und TailWortanzahlSort-BefehlUniq-BefehlGrep GrundlagenGrep mit FlagsZusammenfassung - Textdetektiv10Log-Analyzer-Projekt
ProjektübersichtAnzeigen der Logdatei13Grundlagen der Shell-Skripte
Was ist ein Shell-SkriptEin Skript erstellen und ausführenVariablen in SkriptenBenutzereingabe in SkriptenIf-AnweisungFor-SchleifeWhile-SchleifeZusammenfassung - Zahlenraten2Navigation
Arbeitsverzeichnis anzeigenDateien auflistenVerzeichnis wechselnAbsolute vs. relative PfadeHome- und Root-VerzeichnisZusammenfassung - Den Weg finden8Umleitung
StandardausgabeIn eine Datei überschreibenAn eine Datei anhängenStandardeingabeStandardfehlerausgabeZusammenfassung – Log-Builder3Dateien
Eine Datei erstellenEine Datei lesenEine Datei kopierenEine Datei verschieben und umbenennenEine Datei löschenZusammenfassung - Dateioperationen6Wildcards und Muster
Die Sternchen-WildcardDie Fragezeichen-WildcardKlammer-WildcardsWildcards kombinierenZusammenfassung - Selektive Operationen9Pipes
Was ist eine PipeVerkettung zweier BefehleVerkettung mehrerer BefehlePipe mit GrepZusammenfassung - Daten-Pipeline