Bash Exit Code Last Command

Bash Exit Code Last Command

Po wykonywaniu polecenia bash pozostawia kod wyjściowy, niezależnie od udanego lub nieudanego wykonania. Badanie kodu wyjścia może zaoferować użyteczny wgląd w zachowanie polecenia ostatniego biegu.

W tym przewodniku sprawdź, jak sprawdzić kod wyjściowy BASH ostatniego polecenia i niektóre możliwe zastosowania.

Bash Exit Code

Każde polecenie UNIX/LINUX wykonane przez skrypt powłoki lub użytkownika pozostawia status wyjścia. Jest to numer liczby całkowitej, który pozostaje niezmieniony, chyba że następne polecenie zostanie uruchomione. Jeśli kod wyjściowy wynosi 0, wówczas polecenie zakończyło się powodzeniem. Jeśli kod wyjściowy jest niezerowy (1-255), oznacza to błąd.

Istnieje wiele potencjalnych zastosowań kodu exit. Najbardziej oczywistym jest oczywiście sprawdzenie, czy ostatnie polecenie jest wykonane prawidłowo, zwłaszcza jeśli polecenie nie generuje żadnego wyjścia.

W przypadku BASH kod wyjściowy poprzedniego polecenia jest dostępny za pomocą zmiennej powłoki „$?".

Sprawdzanie kodu wyjścia Bash

Uruchom terminal i uruchom dowolne polecenie.

$ data

Sprawdź wartość zmiennej powłoki „$?”W przypadku kodu wyjścia.

$ echo $?

Ponieważ polecenie „dat” działało pomyślnie, kod wyjściowy to 0. Co by się stało, gdyby wystąpił błąd?

Spróbujmy uruchomić polecenie, które nie istnieje.

$ abcd

Sprawdź kod wyjściowy.

$ echo $?

Jest to wartość niezerowa, co wskazuje, że poprzednie polecenie nie wykonało poprawnie.

Teraz spójrz na następujące polecenie:

próbka $ cat.txt | Grep „Moneta”

Podczas pracy z poleceniem, które ma jedną lub więcej rur, kod wyjściowy będzie z ostatniego kodu wykonanego w rurze. W tym przypadku jest to polecenie GREP.

Ponieważ polecenie GREP zakończyło się sukcesem, będzie 0.

$ echo $?

W tym przykładzie, jeśli polecenie GREP się nie powiedzie, kod wyjścia będzie niezerowy.

próbka $ cat.txt | Grep „ABCD”
$ echo $?

Włączanie kodu wyjścia do skryptów

Kod wyjściowy może być również używany do scenariuszy. Jednym prostym sposobem użycia jest przypisanie go do zmiennej powłoki i praca z nią. Oto przykładowy skrypt powłoki, który wykorzystuje kod wyjściowy jako warunek do wydrukowania określonego wyjścia.

$ #!/bin/bash
$ echo „Hello World”
$ status = $?
$ [$ status -eq 0] && echo „polecenie udane” || Echo „Command nie powiodła się”

Po uruchomieniu skrypt wygeneruje następujące dane wyjściowe.

Teraz zobaczmy, co się stanie, gdy istnieje nieprawidłowe polecenie do uruchomienia.

$ #!/bin/bash
$ losowo-command
$ status = $?
$ [$ status -eq 0] && echo „polecenie udane” || Echo „Command nie powiodła się”

Po uruchomieniu wyjście będzie inne.

Wyjaśnienie wartości kodu wyjścia

Gdy kod wyjściowy jest niezerowy, wartość wynosi od 1 do 255. Co oznacza ta wartość?

Chociaż wartość jest ograniczona, wyjaśnienie każdej wartości jest unikalne dla programu/skryptu. Na przykład „LS” i „GREP” mają różne wyjaśnienia kodu błędu 1 i 2.

$ man ls
$ man grep

Definiowanie statusu wyjścia w skrypcie

Podczas pisania skryptu możemy zdefiniować niestandardowe wartości kodu wyjścia. To przydatna metoda łatwiejszego debugowania. W skryptach Bash jest to polecenie „wyjścia”, a następnie wartość kodu wyjścia.

$ exit

Zgodnie z konwencją zaleca się przypisanie kodu wyjścia 0 do pomyślnego wykonania i użycie reszty (1-255) w celu uzyskania możliwych błędów. Po osiągnięciu polecenia wyjścia wykonanie skryptu powłoki zostanie zakończone, więc uważaj na jego umieszczenie.

Spójrz na następujący skrypt powłoki. Tutaj, jeśli warunek zostanie spełniony, skrypt zakończy się kodem wyjścia 0. Jeśli warunek nie jest spełniony, kod wyjściowy wyniesie 1.

$ #!/bin/bash
$ jeśli [[„$ (whoami)” != root]]; Następnie
$ echo "nie użytkownik root."
$ exit 1
$ fi
$ echo „root użytkownik”
$ exit 0

Sprawdź wynik uruchomienia tego skryptu bez uprawnienia Sudo lub użytkownika „root”.

$ ./próbka.cii
$ echo $?

Końcowe przemyślenia

Ten przewodnik pokazuje, jakie są kody wyjściowe i jak możesz z nich korzystać. Pokazuje także, jak przypisać odpowiednie kody wyjściowe w skrypcie Bash.

Zainteresowany scenariuszem Bash? Jednym z najłatwiejszych sposobów na rozpoczęcie pracy jest napisanie własnych skryptów. Sprawdź ten prosty przewodnik, jak napisać prosty skrypt bash.

Szczęśliwy komputer!