Gibt es eine Goto -Anweisung in Bash

Gibt es eine Goto -Anweisung in Bash
Eine der wichtigsten Merkmale von Bash ist die Fähigkeit, den Fluss der Ausführung des Skripts zu steuern. Diese Kontrolle ist durch verschiedene bedingte Aussagen wie IF-ELSE und Schleifen wie für und while möglich möglich. Einige Entwickler fragen sich jedoch möglicherweise, ob Bash a unterstützt "gehe zu" Aussage wird dieser Artikel untersucht, ob es a gibt gehe zu Aussage in Bash oder nicht.

Gibt es eine "Goto" -Anweisung in Bash

A "gehe zu" Anweisung ist ein Programmierkonstrukt, mit dem Programmierer zu einem bestimmten Teil des Codes springen können. Es wird als kontroverses Merkmal angesehen, da es sein Potenzial, Code schwer zu lesen und zu verstehen, erschwert. Es kann jedoch in einigen Fällen nützlich sein, insbesondere wenn es um komplexe Kontrollströme geht.

In Bash gibt es keine direkte Unterstützung für die "gehe zu" Stattdessen bietet Bash alternative Konstrukte, die den gleichen Effekt wie a erzielen können "gehe zu" Stellungnahme.

Zum Beispiel die 'brechen' Und 'weitermachen' Aussagen ermöglichen es den Programmierern, aus Schleifen zu springen oder Iterationen in einer Schleife zu überspringen. Ebenso liefert Bash die 'zurückkehren' Anweisung, um eine Funktion zu beenden und zum aufrufenden Code zurückzukehren.

#!/Bin/Bash
# Definieren Sie eine Funktion zum Hinzufügen von zwei Zahlen
Funktion add_numbers
wenn [$# -ne 2]; Dann
Echo "Fehler: Geben Sie zwei Zahlen zum Hinzufügen"
Rückgabe 1 # Beendenfunktion mit Fehlerstatus
fi
Ergebnis = $ (($ 1 + $ 2))
Echo $ Ergebnis

result = $ (add_numbers 10 20)
Wenn [$? -Gl 0]; Dann
Echo "Ergebnis: $ Ergebnis"
anders
Echo "Funktion ist mit Fehlercode $ fehlgeschlagen?"
fi

Der Code deklariert eine Funktion genannt add_numbers Dies erfordert zwei Argumente, überprüft, ob genau zwei Argumente bereitgestellt werden, die beiden Zahlen hinzufügen und das Ergebnis in der Ergebnisvariablen speichert.

Das Skript ruft dann das auf add_numbers Funktion mit zwei Argumenten und überprüft den Rückgabestatus der Funktion mit dem '$?'' Variable. Wenn die Funktion erfolgreich ist (Rückgabestatus 0), druckt sie das Ergebnis, andernfalls druckt sie eine Fehlermeldung mit dem Rückgabestatus der Funktion:

Eine andere Alternative zur "gehe zu" Aussage in Bash ist die Fall Stellungnahme Da die Fallanweisung einer Switch -Anweisung in anderen Programmiersprachen ähnelt und es den Programmierern ermöglicht, bestimmte Codeblöcke basierend auf dem Wert einer Variablen auszuführen. Der Fallerklärung kann verwendet werden, um einen ähnlichen Effekt wie a zu erzielen "gehe zu" Stellungnahme. Unten finden Sie den Code, der nur zwei Ganzzahlen mit derselben Logik hinzufügt, auf der die GOTO -Aussage Werke:

#!/Bin/Bash
# Lesen Sie zwei Zahlen vom Benutzer
Lesen Sie -p "Erste Nummer eingeben:" Num1
Lesen Sie -p "Zweite Nummer eingeben:" Num2
Funktion add_numbers
Ergebnis = $ (($ 1 + $ 2))
# geben das Ergebnis dem Benutzer aus
Echo "Ergebnis: $ Ergebnis"

Fall $ Num1 $ num2 in
*[!0-9]*)
Echo "Fehler: Geben Sie gültige Ganzzahlen ein"
;;
*)
add_numberber $ num1 $ num2
;;
ESAC

Zuerst die Befehl lesen wird verwendet, um den Benutzer zu fordern, zwei Zahlen einzugeben und dann die add_numbers Funktion fügt den beiden Zahlen hinzu und gibt das Ergebnis dem Benutzer aus. Um zu überprüfen, ob beide Nummern gültig sind Fallerklärung. Wenn eine der beiden Nummer keine gültige Ganzzahl ist, gibt das Skript eine Fehlermeldung aus, und wenn beide Zahlen gültige Ganzzahlen sind, dann ist die add_numbers Die Funktion wird aufgerufen, um die Zahlen zusammenzusetzen und das Ergebnis auszugeben.

Durch Verwendung der Fallerklärung Um die Eingabe zu überprüfen, vermeidet das Skript die Notwendigkeit a "gehe zu" Anweisung, um zu einem bestimmten Teil des Codes zu springen, basierend auf dem Eingabewert:

Abschluss

Bash bietet keine direkte Unterstützung für die Aussage "Goto" BASH liefert jedoch alternative Konstrukte wie eine Pause, Fortsetzung, Rückkehr und Fallanweisungen, die ähnliche Effekte wie a erzielen können Aussage "Goto". Wie bei jeder Programmiersprache ist es wichtig, diese Konstrukte mit Bedacht zu verwenden und sie zu vermeiden, übermäßig zu verwenden. Durch die ordnungsgemäße Verwendung von Steuerflusskonstrukten kann der Code lesbarer und wartbarer werden, während übermäßige Verwendung den Code schwer zu verstehen und zu debuggen kann.