Bash Wyjście z błędu

Bash Wyjście z błędu
Kod stanu wyjścia jest zwracany, gdy dowolne polecenie Linux jest wykonywane z terminala, albo polecenie jest skuteczne, albo nieudane. Ten kod statusu może być użyty do wyświetlenia komunikatu o błędzie do nieudanego wykonywania lub wykonania dowolnego konkretnego zadania za pomocą skryptu powłoki. Kod stanu wyjścia zawsze reprezentuje liczbę. Wartość tego kodu wynosi 0 dla pomyślnego wykonania dowolnego polecenia Linux i zwraca dowolną liczbę od 1 do 255 dla nieudanego wykonywania polecenia. Jak można użyć kodu statusu z terminalu i w skrypcie BASH, pokazano w tym samouczku.

Niektóre typowe kody stanu błędu są wymienione poniżej.

Kod Opis Uwagi
0 Oznacza to pomyślne wykonanie.
1 Służy do złapania wszystkich ogólnych błędów. „Podziel przez zero”, „Operacja niedozwolona” itp. mogą być komunikatami o błędach tego kodu.
2 Wskazuje na nadużycie wbudowanych skorupy. „Brakujące słowo kluczowe”, „Brak takiego pliku lub katalogu” itp. mogą być komunikatami o błędach tego kodu.
126 Generuje, gdy dowolne polecenie nie jest w stanie wykonać. Problem zezwolenia lub wymagany klucz Niedostępny może wygenerować ten kod stanu
127 Zwykle generuje problem ścieżki poleceń. „Nie znaleziono polecenia” może być komunikatem dla tego kodu błędu.
130 Generuje dla błędu śmiertelnego. „Skrypt zakończony Ctrl+C” może być przesłaniem tego kodu.
255* Wskazuje kod wyjścia poza zasięgiem.

Przykład-1: Czytanie kodu wyjścia z terminalu

'$?„Zmienna powłoki można użyć do wyświetlania kodu wyjścia dowolnego polecenia. „LS -LA” to prawidłowe polecenie i pokazuje listę plików i folderów bieżącego katalogu roboczego. Wartość „$?„Będzie 0 po wykonaniu polecenia„ LS -LA ”. „ls -xyz” to nieprawidłowe polecenie i „$?„zwróci 2 jako kod błędu po wykonaniu polecenia.

$ LS -LA
$ echo $?
$ ls -xyz
$ echo $?

Przykład-2: Czytanie kodu wyjścia w skrypcie Bash

Utwórz plik bash o nazwie Read_file.cii z następującym skryptem. W tym skrypcie nazwa pliku zostanie uznana za wejście użytkownika, a całkowita liczba wierszy, słowa i znaki tego pliku zostanie policzone za pomocą polecenia „WC”. Jeśli nazwa pliku jest prawidłowa, wartość $ status_code wynosi 0, a jeśli nazwa pliku jest nieprawidłowa, wówczas wartość $ status_code wynosi 1.

Read_file.cii

#!/bin/bash
echo „Wprowadź nazwę pliku”
Przeczytaj nazwę pliku
wc -lwc $ nazwa pliku
Status_code = $?
Echo „Wyjście z polecenia„ WC ”to: $ Status_code”

Przykład-3: Korzystanie z wartości kodu wyjścia do wykonywania określonego zadania

Utwórz plik bash o nazwie Read_month.cii z następującym kodem. Tutaj wartość daty zostanie uznana za dane wejściowe. Nazwa miesiąca będzie pobierana z wartości daty, jeśli data wprowadzania jest ważna, w przeciwnym razie pojawi się komunikat o błędzie „nieprawidłowy”. „Jeśli” jest używany w skrypcie do sprawdzenia kodu stanu wyjścia komendy daty. Jeśli warunek jest prawdziwy, wówczas komunikat sukcesu i nazwa miesiąca daty zostaną wydrukowane. Jeśli warunek jest fałszywy, wówczas komunikat o awarii i kod stanu wyjścia, 1 wydrukuje.

Read_month.cii

#!/bin/bash
echo „Wprowadź datę w formacie: Ryyy-MM-DD”
odczyt date_value
current_month = $ (data -d "$ date_value" '+%b')
Jeśli [$? -Eq 0]
Następnie
Echo „Polecenie daty jest wykonywane pomyślnie”
echo „bieżący miesiąc to $ current_month”
w przeciwnym razie
Echo „Polecenie daty nie jest pomyślnie wykonywane”
Wyjście 1
fi

Uruchom skrypt.

$ bash read_month.cii

Przykład-4: Używanie && i || z kodem wyjściowym

„&&” Operator logiczny jest używany do udanego kodu wyjścia i „||” Operator logiczny służy do nieudanego kodu wyjścia. Następujące polecenie wydrukuje „plik istnieje”, jeśli książka.tekst Plik istnieje w bieżącej lokalizacji i wydrukuj „plik nie istnieje”, jeśli książka.tekst Plik nie istnieje w bieżącej lokalizacji.

Książka $ cat.txt && echo „plik istnieje” || Echo „Plik nie istnieje”

Wniosek:

W tym samouczku pokazano różne zastosowania kodu stanu wyjścia. Mam nadzieję, czytelnik otrzyma jasną koncepcję kodu statusu wyjścia po przeczytaniu tego samouczka.