Podczas pisania skryptu lub wykonywania polecenia, warto wiedzieć, czy się powiodło. W Linux, gdy polecenie jest uruchomione, otrzymujemy kod wyjściowy, który potwierdza, czy wykonane polecenie zakończyło się powodzeniem. Podczas uruchamiania polecenia, które opiera się na danych wyjściowych drugiego polecenia, musisz pobrać kod wyjściowy pierwszego polecenia, aby ustalić, czy inne polecenie uruchomi się. Ten przewodnik koncentruje się na dwóch sposobach sprawdzania, czy polecenie zakończyło się w BASH.
Dwa sposoby sprawdzenia, czy polecenie zakończyło się w bicie
Po uruchomieniu polecenia w Bash musi zwrócić kod wyjściowy lub status. Możesz użyć instrukcji „If”, aby ocenić zwróconą wartość danego polecenia lub użyć specjalnej zmiennej ($?) Aby sprawdzić kod wyjściowy lub status wykonanego polecenia. Wejdźmy w szczegóły.
1. Korzystanie z instrukcji IF Bash
Z oświadczeniem „If”, możesz ocenić wartość zwracaną polecenia wykonywanego w wyrażeniu. Oświadczenie „If” pobiera status wyjścia. W zależności od wyrażenia wykonuje polecenie konsekwentne w instrukcji warunkowej IF-Else.
Na przykład możemy utworzyć skrypt, który usuwa dowolny plik tekstowy w bieżącym katalogu i zwrócić komunikat sukcesu, jeśli polecenie wykonuje komunikat o awarii, jeśli polecenie się nie powiedzie.
Uczyń skrypt wykonywany za pomocą polecenia CHMOD. Następnie wykonaj to.
Zauważ, że nasze polecenie się nie powiodło, wyświetlając w ten sposób nieudaną wiadomość. Jeśli jednak polecenie się powiedzie, otrzymujemy inne wyjście.
Możesz użyć tej samej koncepcji podczas uruchamiania dowolnego polecenia w BASH, tak że jeśli dane polecenie się nie powiodło, wyświetla dane wyjście, aby potwierdzić, że następne polecenie nie zostanie wykonane, ponieważ pierwsze polecenie już nie powiodło się.
2. Korzystanie ze specjalnej zmiennej ($?)
Specjalna zmienna ($?) Zwraca kod wyjściowy ostatniego wykonanego polecenia. Kiedy zwróci kod wyjściowy jako zero, oznacza to, że polecenie pomyślnie się powiodło. Jednak każdy inny numer oznacza, że twoje polecenie się nie powiodło.
Korzystanie z zmiennej specjalnej do sprawdzenia, czy polecenie zakończyło się powodzeniem, wymaga użycia operatora porównawczego binarnego (EQ), aby sprawdzić, czy kod wyjściowy wynosi zero. Jeśli nie, wykonuje to część instrukcji warunkowej IF-ELSE.
Uruchom polecenie w swoim skrypcie. Następnie dodaj instrukcję warunkową IF-ELSE, aby sprawdzić, czy twoje polecenie zostało wykonane. Edytujmy nasz wcześniejszy przykład, aby użyć specjalnej zmiennej w następujący sposób:
Jeśli uruchomimy skrypt, zwraca dane wyjściowe, które potwierdza, że się nie powiodło, ponieważ nie ma plików tekstowych do usunięcia. Dlatego wykonuje polecenie w części innej zamiast „jeśli”.
Załóżmy, że mamy pliki tekstowe w bieżącym katalogu. Moglibyśmy uzyskać inne wyjście. Tutaj otrzymujemy komunikat sukcesu, co oznacza, że kod wyjściowy dopasował sekcję „If”, która się powiodła.
W poprzednim przypadku polecenie się powiodło. Możemy go zweryfikować na podstawie wyświetlanego komunikatu wyjściowego, potwierdzając, że kod wyjścia dla polecenia wynosi zero.
Wniosek
Istnieją dwa powszechne sposoby sprawdzenia, czy twoje polecenie zakończyło się w Bash. Możesz użyć warunkowej instrukcji IF-Else, aby wyświetlić wyjście, w zależności od tego, czy polecenie powiodło się. Alternatywnie możesz użyć specjalnej zmiennej ($?) Aby sprawdzić kod wyjściowy lub status wykonanego polecenia za pomocą instrukcji IF-ELSE.