Existe alguma maneira de determinar o sinal que foi capturado de dentro de uma função bash trap?

3

Eu tenho um script bash , no qual especifiquei por meio de trap que uma função será chamada para qualquer (possível) signal .

typeset -i sig=1
while (( sig < 65 )); do
    trap myfunc $sig
    let sig=sig+1
done

Existe alguma maneira de o meu script determinar qual signal foi capturado?

    
por BobDoolittle 05.02.2015 / 23:36

2 respostas

8
trap "signum=${sig};myfunc" "$sig"
    
por 05.02.2015 / 23:47
3

Suponho que você esteja tentando passar o valor do sinal capturado para a ação que você deseja executar. Tente algo assim:

# 1     SIGHUP
# 2     SIGINT
# 3     SIGQUIT
# 6     SIGABRT
# 9     SIGKILL
# 14    SIGALRM
# 15    SIGTERM

for sig in 1 2 3 6 9 14 15; do
    trap 'echo "caught signal '$sig'..."' $sig
done
    
por 05.02.2015 / 23:54

Tags