trap "$instructions" SIGSEGV captura falhas de segmentação no próprio shell.
Se você executar seu script em set -e , poderá colocar uma interceptação em EXIT (ou 0 ). Ele será executado quando seu script for finalizado (devido a um comando que retorna um status diferente de zero ou pela chamada explícita de exit ou pela queda do final do script). Para testar uma falha de segmentação, verifique $? na entrada do trap. (Observe que $? poderia ser 139 porque o programa retornou normalmente com o status 139; isso é evitável se você fizer seu processamento no shell.)
set -e
trap 'case $? in
139) echo "segfault occurred";;
esac' EXIT
No bash ou ksh ou zsh, você não precisa usar set -e para executar uma interceptação após cada comando que retorna um status diferente de zero, você pode colocar uma interceptação em ERR . Como antes, você precisa verificar $? na entrada do trap, e 139 pode (mas raramente) significa que o programa retornou este status.