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
लेकिन नाडा।