मेरे स्क्रिप्ट पहले निर्देश के रूप में है:बैश: कैसे जाल को -e सेट है, लेकिन नहीं से बाहर निकलने के
set -e
तो जब भी कोई त्रुटि होती है, तो स्क्रिप्ट रोकता है। मैं एक सूचना संदेश दिखाने के लिए इस स्थिति को फंसाना चाहता हूं, लेकिन जब भी स्क्रिप्ट निकलती है तो मैं उस संदेश को नहीं दिखाना चाहता; केवल जब सेट-गर्भपात ट्रिगर करता है। क्या इस स्थिति को फँसाना संभव है?
यह:
set -e
function mytrap {
echo "Abnormal termination!"
}
trap mytrap EXIT
error
echo "Normal termination"
किसी भी निकास में कहा जाता है (एक त्रुटि होता है या नहीं) है, जो नहीं है कि मैं क्या चाहता हूँ।
trap mytrap ERR
पूर्ण कोड::
set -e
function mytrap {
echo "Abnormal termination!"
}
trap mytrap ERR
(($#)) && error
echo "Normal termination"
अब त्रुटि पीढ़ी के लिए इसे चलाने:
bash sete.sh 123
sete.sh: line 9: error: command not found
Abnormal termination!
सामान्य निकास बिंदुओं पर एक फ़ंक्शन को कॉल करें जैसे कि यह सामान्य समाप्ति को इंगित करने के लिए ध्वज सेट करता है। सामान्य और असामान्य समाप्ति के बीच अंतर करने के लिए इस मूल्य को आपके जाल समारोह द्वारा चेक किया जा सकता है। – codeforester
@codeforester Yepp, अब मैं उन शर्तों पर सोच रहा था। – dangonfast