Obsługa błędów jest bardzo ważną częścią każdego języka programowania. Bash nie ma lepszej opcji niż inne języki programowania do obsługi błędu skryptu. Ale konieczne jest, aby skrypt bash bez błędów w momencie wykonywania skryptu z terminalu. Funkcję obsługi błędów można zaimplementować dla skryptu BASH na wiele sposobów. Różne techniki obsługi błędów w skrypcie Bash są pokazane w tym samouczku.
Przykład 1: Obsługa błędów za pomocą instrukcji warunkowej
Utwórz plik bash z następującym skryptem, który pokazuje użycie instrukcji warunkowej do obsługi błędów. Pierwsza instrukcja „If” służy do sprawdzenia całkowitej liczby argumentów wiersza poleceń i wydrukuj komunikat o błędzie, jeśli wartość jest mniejsza niż 2. Następnie wartości dywidendy i dzielnicy są pobierane z argumentów wiersza poleceń. Jeśli wartość dzielnicy jest równa 0, generowany jest błąd, a komunikat o błędzie jest wydrukowany w błędzie.plik txt. Drugie polecenie „If” służy do sprawdzenia, czy błąd.plik txt jest pusty, czy nie. Komunikat o błędzie jest wydrukowany, jeśli błąd.plik txt nie jest pusty.
#!/bin/bash
#Sprawdź wartości argumentów
jeśli [$# -lt 2]; Następnie
echo „brakuje jednego lub więcej argumentów."
Wyjście
fi
#Przeczytaj wartość dywidendy z pierwszego argumentu wiersza poleceń
Dywidenda = 1 USD
#Przeczytaj wartość Divisor z drugiego argumentu wiersza poleceń
Divisor = 2 USD
#Dywidenda przez dzielnika
wynik = 'echo "Skala = 2; $ Dividend/$ Divisor" | BC 2> Błąd.tekst'
#Przeczytaj zawartość pliku błędu
content = 'CAT Błąd.tekst'
jeśli [-n „$ content”]; Następnie
#Print komunikat o błędzie, jeśli błąd.TXT nie jest pusty
echo „Wystąpił błąd podzielny przez zerowy błąd."
w przeciwnym razie
#PRORT RESY
echo „$ dywidend/$ divisor = $ wynik”
Wyjście:
Następujące dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu bez żadnego argumentu:
Następujące dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu z jedną wartością argumentu:
Poniższe dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu z dwoma prawidłowymi wartościami argumentów:
Następujące dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu z dwiema wartościami argumentów, w których drugi argument to 0. Komunikat o błędzie jest wydrukowany:
Przykład 2: Obsługa błędów za pomocą kodu stanu wyjścia
Utwórz plik bash z następującym skryptem, który pokazuje użycie obsługi błędów Bash przez kod stanu wyjścia. Każde polecenie bash jest traktowane jako wartość wejściowa, a polecenie to jest wykonywane później. Jeśli kod stanu wyjścia nie jest równy zero, wydrukowany jest komunikat o błędzie. W przeciwnym razie wydrukowano wiadomość sukcesu.
#!/bin/bash
#Zrób nazwę polecenia Linux
echo -n „Wprowadź polecenie:”
Przeczytaj nazwę CMD_NAME
#Run polecenie
$ cmd_name
#Sprawdź, czy polecenie jest prawidłowe czy nieprawidłowe
Jeśli [$? -ne 0]; Następnie
echo "$ cmd_name to nieprawidłowe polecenie."
w przeciwnym razie
echo "$ cmd_name to prawidłowe polecenie."
fi
fi
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu za pomocą prawidłowego polecenia. W tym przypadku „data” jest traktowana jako polecenie w ważnej wartości wejściowej:
Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu dla nieprawidłowego polecenia. Tutaj „cmd” jest traktowane jako polecenie w wartości wejściowej, która jest nieprawidłowa:
Przykład 3: Zatrzymaj wykonanie pierwszego błędu
Utwórz plik bash z następującym skryptem, który pokazuje metodę zatrzymania wykonania, gdy pojawi się pierwszy błąd skryptu. W następującym skrypcie używane są dwa nieprawidłowe polecenia. Tak więc generowane są dwa błędy. Skrypt zatrzymuje wykonanie po wykonaniu pierwszego nieprawidłowego polecenia za pomocą polecenia „SET -e”.
#!/bin/bash
#Otrzymuj opcję zakończenia skryptu na pierwszym błędzie
zestaw -e
echo „aktualna data i godzina:”
#Valid polecenie
data
Echo „Obecny katalog roboczy:”
#Niepoprawna komenda
CWD
Echo „Zaloguj się nazwa użytkownika:”
#Valid polecenie
kim jestem
echo lista plików i folderów: '
#Niepoprawna komenda
lista
Wyjście:
Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu. Skrypt zatrzymuje wykonanie po wykonaniu nieprawidłowego polecenia, które jest „cwd”:
Przykład 4: Zatrzymaj wykonanie dla niezainicjowanej zmiennej
Utwórz plik bash z następującym skryptem, który pokazuje metodę zatrzymania wykonywania skryptu dla niezainicjowanej zmiennej. Wartości nazwy użytkownika i hasła są pobierane z wartości argumentu wiersza poleceń. Jeśli którekolwiek z wartości tych zmiennych jest niezainicjowane, wydrukowana jest komunikat o błędzie. Jeśli obie zmienne zostaną zainicjowane, skrypt sprawdza, czy nazwa użytkownika i hasło są prawidłowe lub nieprawidłowe.
#!/bin/bash
#Ustaw opcję zakończenia skryptu dla niezainicjowanej zmiennej
set u
#Uset pierwszą wartość argumentu wiersza poleceń do nazwy użytkownika
Nazwa użytkownika = 1 $
#Uset wartość argumentu drugiego wiersza poleceń do hasła
hasło = 2 USD
#Sprawdź nazwę użytkownika i hasło są ważne lub nieprawidłowe
if [[$ UserName == 'admin' && $ hasło == 'hidenseek']]; Następnie
Echo ”prawidłowy użytkownik."
w przeciwnym razie
echo "Nieprawidłowy użytkownik."
fi
Wyjście:
Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany bez użycia żadnej wartości argumentu wiersza poleceń. Skrypt zatrzymuje wykonanie po uzyskaniu pierwszej niezainicjowanej zmiennej:
Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany za pomocą jednej wartości argumentu wiersza poleceń. Skrypt zatrzymuje wykonanie po uzyskaniu drugiej niezainicjowanej zmiennej:
Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwiema wartościami argumentów wiersza poleceń - „admin” i „ukryj”. Tutaj nazwa użytkownika jest ważna, ale hasło jest nieprawidłowe. Tak więc wydrukowana jest komunikat „nieprawidłowy użytkownik”:
Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwoma wartościami argumentów wiersza poleceń - „admin” i „hidenseek”. Tutaj nazwa użytkownika i hasło są prawidłowe. Wydrukowana jest więc komunikat „prawidłowego użytkownika”:
Wniosek
Różne sposoby obsługi błędów w skrypcie BASH są pokazane w tym samouczku przy użyciu wielu przykładów. Mamy nadzieję, że pomoże to użytkownikom BASH wdrożyć funkcję obsługi błędów w skrypcie Bash.