/ / Sprawdź, czy pułapka jest ustawiona w Bash - linux, bash, shell, sygnały, bash-trap

Sprawdź, czy pułapka jest ustawiona w Bash - linux, bash, shell, sygnały, bash-trap

Czy istnieje sposób, aby sprawdzić, co traps zostały ustawione (w bieżącej sesji lub skrypcie) w Bash?

Idealnie, chciałbym móc uzyskać listę sygnałów, które mają trap przypisane do nich, ale jeśli to nie jest możliwe, mogę sprawdzić każdy sygnał indywidualnie.

Odpowiedzi:

4 dla odpowiedzi № 1

tak.

Możesz zobaczyć wszystkie pułapki lub pułapki dla określonego sygnału:

$ trap            # show all traps for all signals
$ trap -p SIGINT  # only show traps for SIGINT
$ trap -p EXIT    # only show traps for EXIT

5 dla odpowiedzi nr 2

Zdefiniujmy funkcję w następujący sposób:

$ function f
> {
> echo trapped
> }

Ustawmy pułapkę na funkcję przypisaną do SIGINT

$ trap f SIGINT

Załóżmy ustawione pułapki:

$ trap
trap -- "f" SIGINT
trap -- "" SIGTSTP
trap -- "" SIGTTIN
trap -- "" SIGTTOU