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 || Commad2W 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/bashW 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.