Czy w Bash jest oświadczenie „goto”

Czy w Bash jest oświadczenie „goto”
Jedną z najważniejszych cech bash jest jego zdolność do kontrolowania przepływu wykonania skryptu, ta kontrola jest możliwa poprzez różne stwierdzenia warunkowe, takie jak Else i IF-Else i pętle, takie jak dla i while. Jednak niektórzy programiści mogą się zastanawiać, czy Bash popiera "iść do" stwierdzenie, ten artykuł zbada, czy istnieje iść do Oświadczenie w Bash czy nie.

Czy w Bash jest oświadczenie „goto”

A "iść do" Instrukcja to konstrukt programowy, który pozwala programistom skakać do określonej części kodu. Jest uważany za kontrowersyjną funkcję ze względu na jego potencjał, aby utrudnić kod do odczytania i zrozumienia. Jednak w niektórych przypadkach może to być przydatne, szczególnie w przypadku złożonych przepływów kontroli.

W Bash nie ma bezpośredniego wsparcia dla "iść do" Zamiast tego Bash zapewnia alternatywne konstrukty, które mogą osiągnąć ten sam efekt co a "iść do" oświadczenie.

Na przykład 'przerwa' I 'Kontynuować' Oświadczenia pozwalają programistom wyskoczyć z pętli lub pomijać iteracje w pętli. Podobnie Bash zapewnia 'powrót' instrukcja, aby wyjść z funkcji i powrócić do kodu wywołania.

#!/bin/bash
# Zdefiniuj funkcję, aby dodać dwie liczby
funkcja add_numbers
jeśli [$# -NE 2]; Następnie
Echo „Błąd: podaj dwie liczby do dodania”
zwróć 1 # funkcja wyjścia ze statusem błędu
fi
wynik = $ ((1 USD + 2 USD))
Echo $ wynik

wynik = $ (add_numbers 10 20)
Jeśli [$? -Eq 0]; Następnie
Echo „wynik: $ wynik”
w przeciwnym razie
Funkcja echo „nie powiodła się z kodem błędu $?"
fi

Kod deklaruje funkcję o nazwie add_numbers To wymaga dwóch argumentów, kontroli, jeśli dokładnie podano dwa argumenty, dodaj dwie liczby i przechowuje wynik zmiennej wyniku.

Skrypt wywołuje następnie add_numbers funkcja z dwoma argumentami i sprawdza status powrotu funkcji za pomocą '$?' zmienny. Jeśli funkcja się powiedzie (status zwrócenia 0), wówczas drukuje wynik, w przeciwnym razie drukuje komunikat o błędzie ze statusem zwrotu funkcji:

Kolejna alternatywa dla "iść do" Oświadczenie w Bash jest sprawa oświadczenie Ponieważ instrukcja przypadku jest podobna do instrukcji przełącznika w innych językach programowania i umożliwia programistom wykonywanie określonych bloków kodów na podstawie wartości zmiennej. Oświadczenie o sprawie można użyć do osiągnięcia podobnego efektu jak a "iść do" oświadczenie. Poniżej znajduje się kod, który po prostu dodaje dwie liczby całkowite za pomocą tej samej logiki, na której Oświadczenie GOTO Pracuje:

#!/bin/bash
# Przeczytaj dwie liczby od użytkownika
Przeczytaj -p „Wprowadź pierwszy numer:” Num1
Przeczytaj -p „Wprowadź drugą liczbę:” Num2
funkcja add_numbers
wynik = $ ((1 USD + 2 USD))
# Wydaj wynik użytkownika
Echo „wynik: $ wynik”

sprawa $ num1 $ num2 in
*[!0-9]*)
Echo „Błąd: wprowadź prawidłowe liczby całkowite”
;;
*)
add_numbers $ num1 $ num2
;;
esac

Po pierwsze Przeczytaj polecenie służy do monitowania użytkownika do wprowadzenia dwóch liczb, a następnie add_numbers Funkcja dodaje dwie liczby i wysyła wynik do użytkownika. Aby sprawdzić, czy oba liczby są prawidłowym kodem liczb całkowitych Oświadczenie o sprawie. Jeśli którykolwiek z numerów nie jest prawidłową liczbą całkowitą, skrypt wyświetla komunikat o błędzie, a jeśli oba liczby są prawidłowymi liczbami całkowitych, to wówczas add_numbers Funkcja jest wywoływana, aby dodać liczby razem i wyświetlić wynik.

Za pomocą Oświadczenie o sprawie Aby sprawdzić dane wejściowe, skrypt unika potrzeby "iść do" Oświadczenie, aby przejść do określonej części kodu na podstawie wartości wejściowej:

Wniosek

Bash nie zapewnia bezpośredniego wsparcia dla Oświadczenie „goto” Jednak Bash zapewnia alternatywne konstrukty, takie jak przerwa, kontynuacja, powrót i instrukcje, które mogą osiągnąć podobne efekty jak a Oświadczenie „goto”. Podobnie jak w każdym języku programowania, konieczne jest rozsądne użycie tych konstrukcji i unikanie ich nadmiernego używania. Właściwe użycie konstrukcji przepływu sterowania może sprawić, że kod jest bardziej czytelny i utrzymywany, podczas gdy nadmierne użycie może utrudnić zrozumienie i debugowanie kodu.