Mam skrypt, który znalazłem i próbuję go uruchomić, po prostu pobiera i instaluje biblioteki wykonawcze Apache. Pierwszy wiersz jest set -e
i powoduje błąd; Co ma set -e
zrobić?
Mam skrypt, który znalazłem i próbuję go uruchomić, po prostu pobiera i instaluje biblioteki wykonawcze Apache. Pierwszy wiersz jest set -e
i powoduje błąd; Co ma set -e
zrobić?
Odpowiedzi:
To wbudowane jest tak skomplikowane, że zasługuje na własną sekcję.
set pozwala zmieniać wartości opcji powłoki i ustawiać parametry pozycyjne lub wyświetlać nazwy i wartości zmiennych powłoki.
-e
opcja
-mi
Wyjdź natychmiast, jeśli potok (patrz Rurociągi), który może składać się z pojedynczego prostego polecenia (patrz Proste polecenia), polecenia podpowłoki ujętego w nawiasy (patrz Grupowanie poleceń) lub jednego z poleceń wykonanych jako część listy poleceń zawartej przez nawiasy klamrowe (patrz Grupowanie poleceń) zwraca stan niezerowy. Powłoka nie kończy działania, jeśli polecenie, które się nie powiedzie, jest częścią listy poleceń bezpośrednio po słowie kluczowym chwilę lub do, część testu w instrukcji if, część dowolnego polecenia wykonanego w && lub || lista oprócz polecenia następującego po ostatnim && lub ||, dowolne polecenie w potoku, ale ostatnie, lub jeśli status zwracany polecenia jest odwracany za pomocą! Pułapka na ERR, jeśli jest ustawiona, jest wykonywana przed wyjściem powłoki.
Ta opcja dotyczy środowiska powłoki i każdego środowiska podpowłoki osobno (patrz Środowisko wykonywania poleceń) i może spowodować zamknięcie podpowłoki przed wykonaniem wszystkich poleceń w podpowłoce.
Źródło: www.gnu.org
Edytowane z powodu komentarza @ psusi poniżej.
Dodatkowo możesz przeczytać stronę podręcznika bash
man bash
w dziale: SHELL BUILTIN COMMANDS
lub problem
help set
za krótką wiadomość pomocy.
help set
i / lub man bash
są odpowiednie dla set
.
set -e
w skrócie, gdy znajduje się na górze skryptu bash, mówi skryptowi, aby zakończył pracę, gdy tylko dowolny wiersz w skrypcie nie powiedzie się (z pewnymi wyjątkami wymienionymi w instrukcji). [1]
Jako opcja debugowania jest często używana z set -x
, aby wydrukować każdy rozszerzony wiersz polecenia przed wykonaniem ze znakiem „+”. [2]
Zobacz więcej na:
[1] https://www.peterbe.com/plog/set-ex
[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
help set
a pełna instrukcja bash jestinfo bash
, jeśli masz zainstalowany bash-doc.