W Bash, jeśli polecenie się nie powiedzie, uruchom inne polecenia

W Bash, jeśli polecenie się nie powiedzie, uruchom inne polecenia
Czy wiesz, że każde polecenie uruchomione w Linux ma kod wyjściowy? Jest to prawdą, nawet jeśli polecenie zakończy się błędem. Wartości wyjścia są wartościami całkowitymi, które wynoszą od 0 do 255. Niezerowa wartość, i.mi., wartość wyższa niż 0, wskazuje, że polecenie wychodzi z błędem.

Jeśli polecenie wykonuje z powodzeniem w BASH, ma kod wyjściowy 0. Nie znaleziono polecenia, kod wyjściowy wynosi 127. Dlatego możemy użyć kodu wyjścia do wykonania określonej akcji.

Ten samouczek zawiera kilka wskazówek i wskazówek, których możesz użyć do wykonania akcji w oparciu o kod wyjściowy poprzedniego polecenia.

Za pomocą operatora lub

Jednym ze sposobów wykonania polecenia, jeśli poprzednie polecenie się nie powiedzie, jest użycie operatora lub. Ponieważ operator lub operator wymaga tylko jednego warunku, możemy uruchomić następującą składnię:

$ Command1 || Commad2

W powyższej składni drugie polecenie zostanie wykonane, nawet jeśli pierwsze polecenie się nie powiedzie. Zauważ, że różni się to od korzystania z operatora, ponieważ wymaga pierwszego polecenia do pomyślnego wykonania.

Na przykład:

$ ping -c lhint || echo „sukces”;

W powyższym przykładzie Echo nadal będzie działać pomimo błędu spowodowanego rozdzielczością nazwy w poleceniu ping.

Oto zrzut ekranu ilustrujący to:

NOTATKA: Możesz powiązać wiele poleceń za pomocą operatorów BASH, aby osiągnąć najlepszy wynik. Na przykład możesz pozwolić snu wykonywać tylko wtedy, gdy ping i echo uda się pomyślnie wykonywać.

$ ping -c 1 Linuxhint.com && echo „sukces” || sen 100;

W powyższym przykładzie, jeśli ping lub echo nie powiedzie się, sen nie wykonuje.

To może być pomocne, jeśli następujące polecenie opiera się na danych wyjściowych z poprzedniego polecenia.

Za pomocą kodu wyjścia

Bash pozwala nam uzyskać kod wyjściowy wcześniej wykonanego polecenia. Aby wyświetlić kod wyjściowy, wprowadź polecenie:

$ echo $?

Otrzymujemy 0 dla polecenia wykonanego poprawnie, a 127 dla polecenia nie znalezionego w powyższym przykładzie.

Aby użyć kodu wyjścia do działania, wykonujemy:

#!/bin/bash
Jeśli [[$? -Eq 0]];
Następnie
Echo „Sukces”
w przeciwnym razie:
Echo „upadek”
fi

W powyższym skrypcie sprawdzamy, czy kod wyjściowy jest równy 0, wskazując, że polecenie wykonane pomyślnie. Jeśli prawda, wykonaj polecenie. W tym przypadku Echo „Sukces.”W przeciwnym razie Echo„ Upadek."

Wniosek

W tym szybkim samouczku użyliśmy operatorów bash i kodów wyjściowych do wykonania polecenia, jeśli poprzednie polecenie się nie powiedzie.