Obsługa błędów BASH

Obsługa błędów BASH

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.