trap "$instructions" SIGSEGV
শেল নিজেই ফাঁসী বিভাজন ত্রুটি।
আপনি যদি আপনার স্ক্রিপ্টের নীচে চালনা করেন তবে আপনি (বা ) set -e
একটি ফাঁদ রাখতে পারেন । আপনার স্ক্রিপ্টটি সমাপ্ত হলে এটি কার্যকর করা হবে (কোনও কমান্ড ননজারো স্ট্যাটাস ফিরিয়ে দেওয়ার কারণে, অথবা স্পষ্টভাবে কল করে বা স্ক্রিপ্টের শেষের দিকে পড়ে) falling সেগমেন্টেশন ত্রুটির জন্য পরীক্ষা করতে, ফাঁদে প্রবেশের সময় পরীক্ষা করুন। (দ্রষ্টব্য যেটি 139 হতে পারে কারণ প্রোগ্রামটি স্বাভাবিকভাবে 139 স্ট্যাটাসের সাথে ফিরে এসেছে; আপনি যদি শেলটিতে আপনার প্রক্রিয়াজাতকরণ করেন তবে এটি এড়ানো যায়))EXIT
0
exit
$?
$?
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
কিন্তু Nada।