Gibt es eine „goto“-Anweisung in Bash?

Eines der wichtigsten Merkmale von Bash ist seine Fähigkeit, den Ablauf der Skriptausführung zu steuern. Diese Steuerung ist durch verschiedene bedingte Anweisungen wie if-else und Schleifen wie for und while möglich. Einige Entwickler fragen sich jedoch möglicherweise, ob Bash a unterstützt „gehe zu“ In diesem Artikel wird untersucht, ob es eine gibt gehe zu Anweisung in Bash oder nicht.

Gibt es eine „goto“-Anweisung in Bash?

A „gehe zu“ Die Anweisung ist ein Programmierkonstrukt, das es Programmierern ermöglicht, zu einem bestimmten Teil des Codes zu springen. Es gilt als umstrittenes Feature, da es das Potenzial hat, Code schwer lesbar und verständlich zu machen. In manchen Fällen kann es jedoch nützlich sein, insbesondere wenn es um komplexe Kontrollflüsse geht.

In Bash gibt es keine direkte Unterstützung dafür „gehe zu“ Stattdessen stellt Bash alternative Konstrukte bereit, die den gleichen Effekt wie a erzielen können „gehe zu“ Stellungnahme.

Zum Beispiel die ‚brechen‘ Und ‚weitermachen‘ Anweisungen ermöglichen es Programmierern, aus Schleifen zu springen oder Iterationen in einer Schleife zu überspringen. In ähnlicher Weise bietet Bash die ‚zurückkehren‘ Anweisung, um eine Funktion zu beenden und zum aufrufenden Code zurückzukehren.

#!/bin/bash

# Definieren Sie eine Funktion zum Addieren zweier Zahlen

Funktion add_numbers {

Wenn [ $# -ne 2 ]; Dann

echo „Fehler: Geben Sie zwei Zahlen zum Addieren an“

return 1 # Funktion mit Fehlerstatus beenden

fi

Ergebnis=$(( $1 + $2 ))

echo $result

}

result=$(add_numbers 10 20)

Wenn [ $? -eq 0 ]; Dann

echo „Ergebnis: $result“

anders

echo „Funktion mit Fehlercode $ fehlgeschlagen?“

fi

Der Code deklariert eine aufgerufene Funktion add_numbers das zwei Argumente entgegennimmt, prüft, ob genau zwei Argumente bereitgestellt werden, die beiden Zahlen addiert und das Ergebnis in der Ergebnisvariablen speichert.

Das Skript ruft dann die auf add_numbers Funktion mit zwei Argumenten und prüft den Rückgabestatus der Funktion mithilfe von ‚$?‘ Variable. Wenn die Funktion erfolgreich ist (Rückgabestatus 0), wird das Ergebnis gedruckt. Andernfalls wird eine Fehlermeldung mit dem Rückgabestatus der Funktion ausgegeben:

Eine weitere Alternative zum „gehe zu“ Aussage in Bash ist die Fall Stellungnahme da die Case-Anweisung einer Switch-Anweisung in anderen Programmiersprachen ähnelt und es Programmierern ermöglicht, bestimmte Codeblöcke basierend auf dem Wert einer Variablen auszuführen. Der Fallerklärung kann verwendet werden, um einen ähnlichen Effekt zu erzielen wie a „gehe zu“ Stellungnahme. Unten finden Sie den Code, der einfach zwei Ganzzahlen mit derselben Logik hinzufügt wie die goto-Anweisung funktioniert:

#!/bin/bash

# Zwei Zahlen vom Benutzer lesen

read -p „Geben Sie die erste Zahl ein: “ num1

read -p „Geben Sie die zweite Zahl ein: “ num2

Funktion add_numbers {

Ergebnis=$(( $1 + $2 ))

# Das Ergebnis an den Benutzer ausgeben

echo „Ergebnis: $result“

}

Fall $num1$num2 in

*[!0-9]*)

echo „Fehler: Geben Sie gültige Ganzzahlen ein“

;;

*)

add_numbers $num1 $num2

;;

esac

Zuerst die Lesebefehl wird verwendet, um den Benutzer aufzufordern, zwei Zahlen und dann die einzugeben add_numbers Die Funktion addiert die beiden Zahlen und gibt das Ergebnis an den Benutzer aus. Um zu überprüfen, ob beide Zahlen gültige Ganzzahlen sind, verwendet der Code Fallerklärung. Wenn eine der Zahlen keine gültige Ganzzahl ist, gibt das Skript eine Fehlermeldung aus. Wenn beide Zahlen gültige Ganzzahlen sind, wird die add_numbers Die Funktion wird aufgerufen, um die Zahlen zu addieren und das Ergebnis auszugeben.

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

Abschluss

Bash bietet keine direkte Unterstützung dafür „goto“-Anweisung Bash bietet jedoch alternative Konstrukte wie break-, continue-, return- und case-Anweisungen, die ähnliche Effekte erzielen können wie a „goto“-Anweisung. Wie bei jeder Programmiersprache ist es wichtig, diese Konstrukte mit Bedacht zu verwenden und sie nicht übermäßig zu verwenden. Die ordnungsgemäße Verwendung von Kontrollflusskonstrukten kann die Lesbarkeit und Wartbarkeit des Codes verbessern, während eine übermäßige Verwendung dazu führen kann, dass der Code schwer zu verstehen und zu debuggen ist.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen