में निकास कोड जोड़ें (संग्रह) जोड़ें (मुझे एक स्क्रिप्ट में कुछ अलग निष्पादन पर निर्भर रहने की आवश्यकता है और उन्हें सभी को बदसूरत 'if' कथन में बंडल नहीं करना चाहते हैं। मैं निकास कोड '$?' लेना चाहता हूं प्रत्येक निष्पादन का और इसे जोड़ें; अंत में, यदि यह मान सीमा पर है - मैं एक आदेश निष्पादित करना चाहता हूं।बाश
छद्म कोड:
ALLOWEDERROR=5
run_something
RESULT=$?
..other things..
run_something_else
RESULT=$RESULT + $?
if [ $RESULT -gt ALLOWEDERROR ]
then echo "Too many errors"
fi
मुद्दा: भले ही इंटरनेट अन्यथा दावा करता है, बैश परिणाम और $ के इलाज के लिए मना कर दिया? पूर्णांक के रूप में। सही वाक्यविन्यास क्या है?
धन्यवाद।
त्रुटि (या सफलता) पर ध्यान दिए बिना अंतिम बार केवल इसे कितनी बार निष्पादित किया जाता है: RESULT = $ (($ RESULT + 1))। यदि आप $ (()) निर्माण का उपयोग करना चाहते हैं, तो आपको $ जोड़ने की आवश्यकता है? 1 के बजाय (डेव हिनटन के जवाब में)। अन्यथा, जब आदेश 0 लौटाता है तब भी आप बढ़ रहे होंगे या आप मेरे जवाब में एक जाल का उपयोग कर सकते हैं। –
इसके लिए धन्यवाद, मैंने आपके फ़िक्स में संपादित किया है। मुझे आपका जवाब पसंद है। –
यह काम नहीं करेगा यदि एक पंक्ति के पास 1 का रिटर्न कोड है और दूसरे के पास 1 का रिटर्न कोड है, क्योंकि वे सफलता की तरह दिखने के लिए एक साथ जोड़ देंगे (जो 0 है)। –