Co obejmiemy?
W tym przewodniku zobaczymy przegląd polecenia wyjścia w Linux z niektórymi przypadkami użycia.
Komenda wyjścia i status wyjścia
Możesz także użyć polecenia wyjścia, aby określić status wyjścia powłoki. Status wyjścia jest wartością liczbową, która jest zwracana do procesu nadrzędnego, gdy powłoka kończy się.
Status wyjścia można użyć do wskazania sukcesu lub porażki polecenia. Na przykład skrypt powłoki może użyć statusu wyjścia, aby ustalić, czy wykonać określone działania na podstawie sukcesu lub porażki polecenia.
Aby określić status wyjścia, możesz użyć polecenia wyjścia, a następnie numeru. Na przykład wyjście 0 wskazuje na udane wyjście, a wyjście 1 wskazuje awarię.
Polecenie wyjścia przyjmuje pojedynczy, opcjonalny argument, który staje się statusem wyjścia skryptu.
Gdy nie jest przekazany argument, status wyjścia domyślnie stanowi status wyjścia ostatniego wykonanego polecenia. Aby zobaczyć status wyjścia, użyj Echo ”$?" Komenda.
Przykłady kodów wyjściowych (status wyjścia)
Polecenie wyjścia ma kluczowe znaczenie dla wskazania, że wystąpił poważny błąd, ponieważ procesy wywoławcze zwykle uwzględniają kody wyjścia inne niż zero jako przypadki awarii. Jeśli potrzebujesz ogólnej pułapki błędów w skryptach, spróbuj użyć fragmentu kodu wyjścia.
Zobaczmy kilka przykładów używania kodu wyjścia w skrypcie i na terminalu:
Przykład 1: Korzystanie z polecenia wyjścia z wyrażeniem pliku
Najpierw weźmy przykład skryptu:
#!/bin/bash
# plik testowy: oceń status pliku
File =/proc/uptime
jeśli [-e „$ plik”]; Następnie # Sprawdź istnienie pliku.
jeśli [-f „$ plik”]; Następnie # Sprawdź, czy jest to zwykły plik.
echo "$ plik to zwykły plik."
fi
jeśli [-B „$ plik”]; Następnie # Sprawdź, czy jest to plik blokowy
echo „$ plik to urządzenie blokowe”
fi
w przeciwnym razie
Echo „Plik $ nie jest ani zwykłym ani blokowym plikiem lub nie może istnieć”
Wyjście 1
fi
Wyjście
Skrypt przeprowadza ocenę pliku, który jest przydzielany do stałej "PLIK" i wysyła wyniki podczas działania.
Po pierwsze, sprawdza, czy jest to zwykły plik lub plik blokowy. Jeśli warunek nie jest zadowolony, drukuje wiadomość w bloku innego.
Pierwsze polecenie wyjścia ustawia status wyjścia skryptu w przypadku awarii (wartość wyjścia jako 1). Drugie polecenie wyjścia jest wyrażeniem formalnym. Oznacza to, że gdy skrypt zakończy wykonanie do końca, ma status wyjścia ostatniego polecenia, który w tym przypadku jest poleceniem wyjścia. To ostatnie polecenie wyjścia spowoduje sukces (wartość wyjścia jako 0):
Przykład 2: Korzystanie z poleceń True i False za pomocą polecenia wyjścia
Dodatkowo wprowadzenie prostego argumentu prawdziwego lub fałszywego powoduje, że terminal zrezygnuje z kodem statusu 0 i pokazuje 0 jako prawdziwe. Jeśli zamiast tego podamy fałszywe oświadczenie, status wyjścia wyniesie 1, ponieważ fałszywe wyjścia z kodem 1. Zobaczmy to w praktyczny sposób. Najpierw wydaj prawdziwe polecenie i sprawdź status wyjścia:
$ true
$ echo $?
Teraz wydaj polecenie Fałszywe i ponownie sprawdź status wyjścia:
$ false
$ echo $?
Przykład 3: Przerwanie skryptu Ctrl+C
Gdy użytkownik uderza w Control-C, wysyłany jest specjalny sygnał znany jako Sigint. To przerywa skrypt lub uruchomiony program, co powoduje, że wychodzi z kodu 130. Weźmy przykład: Załóżmy, że zacząłeś przeszukiwać plik za pomocą polecenia Find:
$ find / -Epty
Wyszukiwanie wciąż trwa. Następnie nagle przerwałeś go „Ctrl+C”. To powoduje, że polecenie zatrzymuje się w kodzie wyjściowym 130.
Przykład 4: Zmienna powłoki Shlvl i polecenie wyjścia
Dzięki zmiennej specyficznej dla powłoki, SHLVL, możesz zobaczyć, ile poziomów głęboko w skorupce bash. Każda nowa sesja powłoki, która jest otwarta w terminalu, zwiększa liczbę sesji, zaczynając od 1 dla początkowej sesji. Jeśli Shlvl IS> 1, polecenie wyjścia zamyka bieżącą sesję. W ten sam sposób, jeśli Shlvl IS = 1, polecenie wyjścia rejestruje cię z systemu.
Mówiąc po prostu, gdy wpiszesz „wyjście” na wierszu polecenia i naciśnij ENTER, powłoka zamyka (zamknij bieżącą sesję logowania) i zostaniesz zwrócony do powłoki lub wiersza polecenia, z którego go uruchomiłeś.
Wniosek
Widzieliśmy różne przypadki użycia polecenia wyjścia i interpretacja statusu wyjścia w każdym przypadku. Istnieje wiele różnych numerów kodów wyjściowych do różnych celów. Zauważ, że te kody wyjściowe są specyficzne. Jeśli zwykle używasz innych skorup, takich jak C-Shell Lub tcsh, Wyniki mogą się różnić.