Pytania otagowane jako trap

3
„Pułapka… INT TERM EXIT” naprawdę konieczne?
Wiele przykładów trapużycia trap ... INT TERM EXITdo zadań czyszczenia. Ale czy naprawdę trzeba wymienić wszystkie trzy sigspecy? Instrukcja mówi: Jeśli SIGNAL_SPEC to EXIT (0), ARG jest wykonywane przy wyjściu z powłoki. które moim zdaniem ma zastosowanie niezależnie od tego, czy skrypt zakończył się normalnie, czy zakończył się, ponieważ otrzymał …
63 bash  shell  signals  trap 


6
Pułapka, błąd i echo linii błędu
Próbuję utworzyć raportowanie błędów za pomocą pułapki w celu wywołania funkcji dla wszystkich błędów: Trap "_func" ERR Czy można uzyskać informację, z której linii wysłano sygnał ERR? Powłoka to bash. Jeśli to zrobię, mogę odczytać i zgłosić, które polecenie zostało użyte, i zarejestrować / wykonać niektóre działania. A może źle …


1
czekaj wbudowane bash pali procesor na 100 procentach
Występuje przynajmniej w wersji GNU bash 4.3.42 x86_64 i & GNU bash wersja 4.3.11 x86_64 Używam sleep & wait $!zamiast prostego sleepdo uzyskania przerwania sleepprzez sygnał (jako SIGUSR1 ). Ale wygląda na to, że waitwbudowane bash zachowuje się w dziwny sposób, gdy uruchomisz następujące. Terminal 1: cat <( trap 'echo …

3
Czy pułapka jest dziedziczona przez podpowłokę?
Próbowałem następującego skryptu: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Dane wyjściowe powyższego skryptu były następujące: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Jednak spodziewałem się, że pułapka zostanie również wywołana przy wyjściu z …
14 shell  trap  subshell 

4
Zachować kody wyjścia podczas wychwytywania SIGINT i podobnych?
Jeśli używam trapjak opisano np. Na http://linuxcommand.org/wss0160.php#trap, aby złapać ctrl-c (lub podobny) i oczyścić przed wyjściem, zmieniam zwrócony kod wyjścia. Teraz prawdopodobnie nie będzie to miało znaczenia w świecie rzeczywistym (np. Ponieważ kody wyjścia nie są przenośne, a ponadto nie zawsze są jednoznaczne, jak omówiono w Domyślnym kodzie wyjścia po …

2
Jak wyzwolić błąd za pomocą polecenia Pułapka
Używam Ubuntu 12.04.2. Próbuję użyć polecenia „trap”, aby przechwycić nieprawidłowe lub błędne skrypty powłoki, ale próbuję również ręcznie uruchomić wyjście „Błąd”. Próbowałem wyjść 1, ale nie wyzwala sygnału „Błąd”. #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR func Nie wiesz, jak ręcznie wyzwolić sygnał wyjścia „Błąd”?

3
Jak ustawić pułapkę w funkcjach bash?
Mogę skonfigurować trapw skryptach bash, ale nie w funkcjach bash. Na przykład sourceponiższy kod i uruchom f, a teraz spróbuj Ctrl+ C, nie został uwięziony! Jak skonfigurować trapfunkcje bash? 4 trap ctrl_c INT 5 6 ctrl_c () { 7 echo "** Trapped CTRL-C" 8 } 9 10 11 f () …
13 bash  trap 


6
Cicho uruchom zadanie w tle
Wiem, że możesz tego użyć, aby uruchomić proces w tle, bez otrzymywania powiadomienia, gdy proces zostanie umieszczony w tle i kiedy zostanie to zrobione w następujący sposób: (Command &) &> / dev / null Jednak usuwa to opcję pułapki po zakończeniu procesu ( trap child_done CHLD). Jak mogę mieć oba?
12 process  zsh  trap 

3
Co to jest sygnał 0 w poleceniu trap?
Postępuję zgodnie z tym przewodnikiem, jak skonfigurować uwierzytelnianie SSH bez hasła za pomocą ssh-agent. Aby uruchomić ssh-agent, autor zaleca następujący kod w .bash_profile: SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi Nie rozumiem, dlaczego to sygnał pułapki 0. Według …
12 bash  signals  trap 

1
Obsługa pułapek i niejawne podpowłoki w skryptach powłoki
Załóżmy, że masz skrypt powłoki, który uruchamia pewien rodzaj kodu czyszczenia przez EXITpułapkę, taki jak ten: #!/bin/bash mytrap () { echo "It's a trap!" >&2 } trap mytrap exit echo I am at the end of the script. To, zgodnie z oczekiwaniami, zostanie wydrukowane, It's a trap!gdy skrypt zakończy działanie: …
12 shell  trap 


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.