trap "$instructions" SIGSEGV जाल विभाजन खोल में ही दोष है।
यदि आप अपनी स्क्रिप्ट चलाते हैं set -e, तो आप एक जाल डाल सकते हैं EXIT(या 0)। यह तब निष्पादित किया जाएगा जब आपकी स्क्रिप्ट समाप्त हो जाएगी (चाहे एक कमांड नॉनज़ेरो स्थिति लौटने के कारण, या स्पष्ट रूप से कॉल exitकरके या स्क्रिप्ट के अंत में गिरने से)। एक विभाजन दोष के लिए परीक्षण $?करने के लिए, जाल में प्रवेश की जांच करें । (ध्यान दें कि $?139 हो सकता है क्योंकि कार्यक्रम सामान्य रूप से स्थिति 139 के साथ लौटा है; यह बेहतर है यदि आप शेल में अपना प्रसंस्करण करते हैं।)
set -e
trap 'case $? in
139) echo "segfault occurred";;
esac' EXIT
बैश या ksh या zsh में, आपको set -eप्रत्येक कमांड के बाद एक ट्रैप को निष्पादित करने के लिए उपयोग करने की आवश्यकता नहीं होती है जो नॉनज़रो स्टेटस लौटाता है, आप ERRइसके बजाय ट्रैप लगा सकते हैं । पहले की तरह, आपको $?जाल में प्रवेश की जांच करने की आवश्यकता है , और 139 कैन (लेकिन शायद ही कभी करता है) का मतलब है कि कार्यक्रम ने यह स्थिति वापस कर दी है।
trap "echo 'something happened!'" {1..64}और फिर भी मुझे कुछ नहीं मिलता है। मैं भी साथ tryiedset -bmऔरset -o monitorलेकिन नाडा।