trap "$instructions" SIGSEGV atrapa las fallas de segmentación en el propio shell.
Si ejecuta su script debajo set -e, puede poner una trampa en EXIT(o 0). Se ejecutará cuando finalice su secuencia de comandos (ya sea debido a que un comando devuelve un estado distinto de cero, o llamando explícitamente exito cayendo al final de la secuencia de comandos). Para probar una falla de segmentación, verifique la $?entrada a la trampa. (Tenga en cuenta que $?podría ser 139 porque el programa regresó normalmente con el estado 139; esto se puede evitar si realiza el procesamiento en el shell).
set -e
trap 'case $? in
        139) echo "segfault occurred";;
      esac' EXIT
En bash o ksh o zsh, no necesita usar set -epara ejecutar una trampa después de cada comando que devuelve un estado distinto de cero, en su lugar, puede poner una trampa ERR. Como antes, debe verificar la $?entrada a la trampa, y 139 puede (pero rara vez lo hace) significar que el programa devolvió este estado.
                 
                
                    
                        
                    
                    
                        Gilles 'SO- deja de ser malvado'
                        fuente
                    
                 
                
                
               
        
trap "echo 'something happened!'" {1..64}y todavía no consigo nada. Incluso intenté conset -bmyset -o monitorpero nada.trap "echo 'something happened'" {1..31}funciona para mí (omitiendo!las especificaciones de señal y esas que conducen abash: trap: XX: invalid signal specification).