Co set -e robi w Bash?

Co set -e robi w Bash?
Set -e jest używany w BASH, aby natychmiast zatrzymać wykonywanie, gdy zapytanie wychodzi z powodu statusu niezerowego. Ta funkcja jest również używana, gdy trzeba znać lokalizację błędu w uruchomionym kodzie. Kontynuujmy artykuł, aby rozwinąć koncepcję „ustawioną” w różnych aspektach kodów.

Zainstaluj rozszerzenia Bash w Linux. Jeśli jest już zainstalowany, musisz zaktualizować wersję, ponieważ wersja musi być powyżej 4.

Przykład 1

Tutaj potrzebujemy pliku o kodzie bash. Utwórz więc plik przy użyciu polecenia „dotyk” za pomocą terminalu Ubuntu. To jest napisane jako:

$ Touch File1.cii

Tutaj przyjmiemy dwa podejścia. Jednym z nich jest użycie „Set -e” poza korpusem funkcji, podczas gdy drugim jest użycie go wewnątrz funkcji. Rozważ plik „Plik 1.cii". Potrzebujemy pliku z rozszerzeniem .sh, gdy piszemy kod w języku bash. Ten przykład dotyczy dodania funkcji o nazwie „Helo”.

W tej funkcji chcemy wydrukować wiersz, więc po prostu użyliśmy polecenia Echo tutaj, aby wyświetlić wiadomość. Jak zadeklarowaliśmy tutaj funkcję, aby wymagać wywołania funkcji. W końcu użyliśmy nazwy funkcji jako wywołania funkcji. Tutaj „Set -e” jest używany na początku oznacza poza ciałem funkcji.

Zestaw -e

Ustaw -e po prostu odnoszą się do pisania lub ustawiania błędu pokazującego kod.

Użyliśmy prostego edytora tekstu, który jest domyślnie obecny w systemie Ubuntu.

$ bash plik 1.cii

Teraz przejdź do drugiego podejścia, w którym musimy użyć „Set -e” w funkcji. Zobaczymy różnicę między tymi podejściami. Edytuj dany kod, zastępując „SET -E” z zewnątrz ciała funkcyjnego do wewnątrz ciała funkcji „HELO”, podczas gdy pozostały kod jest taki sam jak poprzedni. Możesz sprawdzić z wstawionego obrazu.

Uruchom ponownie to samo polecenie na terminalu, aby uzyskać wynik.

Oznacza to, że „zestaw -e” nie powoduje żadnych zmian, gdy jest używany wewnątrz lub na zewnątrz ciała funkcyjnego.

Przykład 2

Jest to dość łatwy przykład, w którym po deklaracji rozszerzenia rozszerzenia w pliku użyliśmy „Set -e” w zewnętrznym korpusie funkcji. „Set -e” pozwala terminalu rzucić wyjątek, w którym znajduje błąd, a następnie kod zatrzymuje wykonanie. Następnie zadeklarowana jest funkcja błędu. Jedynym celem tej funkcji jest wyświetlenie komunikatu o błędzie wraz z numerem linii zawierającym błąd.

W tym przykładzie jest coś wyjątkowego, co jest użyciem słowa kluczowego „pułapki”. To słowo kluczowe umożliwia użycie wbudowanej funkcji, która przyjmuje numer błędu, a następnie przekazuje go do funkcji błędu. W tym celu identyfikacji i wyświetlania błędów musimy dodać instrukcję lub zmienną, która nie jest zawarta w Bash lub użyć znaczącej linii ze zmianą wartości składni.

Pułapka „błąd $ linenoe”

Zgodnie z tym kodem wynik musi pokazać błąd w wierszu 10.

Wykonaj kod na terminalu za pomocą pliku. Możesz powiązać, że nazwa pliku jest wyświetlana z numerem wiersza, a wyjątek jest wyświetlany, który pokazuje, że polecenie nie jest znalezione. Po drugie, posiadanie komunikatu funkcji w celu przedstawienia numeru wiersza, w którym wystąpił błąd.

Przykład 3

Ten przykład dotyczy używania dwóch plików bash. Jednym z nich jest plik 1.sh, a drugi to plik2.cii. Rozważ File2.sh pierwszy. Tutaj użyliśmy „Set -e” i nie jest używany w drugim pliku. Podobnie w tym pliku użyliśmy wywołania funkcji, podczas gdy całe ciało funkcji jest zadeklarowane w drugim pliku. Połączyliśmy oba pliki za pomocą słowa kluczowego „źródło”, aby wywołanie funkcji, które tutaj wykonaliśmy.

4 Źródło „File1.cii"

Następnie w wywołaniu funkcyjnym wyświetlane jest również słowo.

Echo „Powiadomienie: $ (helo)”

„Helo” to nazwa funkcji.

Teraz rozważ inny plik pliku 1.cii. W tym pliku funkcja helo1 () jest zadeklarowana. W ciele funkcyjnym wyświetliśmy tylko komunikat.

Echo „Poczekaj: 1 $”

Przechodząc do drugiej funkcji, jaką jest Helo (). Jest to ta sama funkcja, którą nazywała nazwa w pierwszym omówiliśmy. Wewnątrz tej funkcji ponownie użyliśmy wywołania funkcji HELO1 (). Jest to zadeklarowane powyżej bieżącej funkcji w tym samym pliku, więc nie musimy łączyć oba pliki za pomocą słowa kluczowego „źródła”. Przy wywołaniu funkcji wyświetlany jest komunikat:

HELO1 „istnieje błąd”

Cała wydajność jest wykonywana w taki sposób, że uruchomimy plik2.sh w terminalu. Tak więc połączenie pierwszego funkcji zostanie wykonane, a kontrola przejdzie w kierunku funkcji helo () w pliku1.cii. Które wykonają to wywołanie funkcji, a teraz kontrola przejdzie do pierwszej funkcji pliku. Zobaczmy, jak wyświetlane jest wyjście.

plik $ bash.cii

Teraz możesz zobaczyć, że najpierw słowo jest wyświetlane z pliku2.sh, a następnie komunikat funkcji „helo1 ()”, czyli „poczekaj”, a następnie komunikat funkcji helo (). Ponieważ użyliśmy „wyjścia 1”, kontrola nie jest temu podawana, więc znów nie ma roli „ustawionej”. Jeśli wywołanie funkcji nie jest obsługiwane, musi wystąpić błąd do zwycięstwa.

Przykład 4

Ten przykład zawiera pełne zrozumienie „Set -e”. Weź cztery funkcje w tym przykładzie. Jak wiemy, wbudowany zestaw -e służy do wyjścia z kodu, gdy uzyska status niezerowy. W tym przykładzie użyliśmy „0” tylko dla jednej funkcji, która jest pierwszą. Wszystkie inne funkcje zwracają 1. Oznacza to, że kod wyjdzie z realizacji po wyświetleniu pierwszej funkcji. Ale to nie. Tutaj użyliśmy „Set +E”, który jest przeciwieństwem „Set -e”. Ilekroć „Set -e” zmusił kod do zakończenia egzekucji, przeciwne będzie się temu przeciwstawić, gdy napotknie wartość niezerową. „SET +E” jest zadeklarowane przed wywołaniem funkcji dwóch pierwszych funkcji i „ustawionych -e” przed wywołaniem funkcji dwóch ostatnich metod.

Zestaw +e

Teraz zostaną wykonane pierwsze dwie funkcje. W drugiej funkcji, ponieważ jest to wartość niezerowa, kompilator zmusi do rzucenia błędu, ale „SET +E” zneutralizuje wartość. Kiedy nadszedł czas na trzecią funkcję, oba komunikaty będą wyświetlane echo, ale gdy kontrola trafi do wartości „return 1”, kod się zatrzyma. Jak tutaj nie użyliśmy „Set +E”. Dlatego czwarta funkcja nie jest tutaj wykonywana.

Wykonaj kod w terminalu, aby zobaczyć wynikową wartość.

Wniosek

Ten samouczek pokazuje działanie „set -e”. W przykładach w ten sposób jest używany do zakończenia wykonania. Jednak przeciwnik „zestaw +e” jest również używany do zilustrowania pracy.