यह पर्यावरण पर निर्भर करता है, लेकिन मैं कहूंगा कि यह खराब शैली है।
यूनिक्स जैसी प्रणालियों में एक मजबूत सम्मेलन होता है जो 0 से बाहर निकलने की स्थिति सफलता को दर्शाता है, और कोई भी गैर-शून्य निकास स्थिति विफलता को दर्शाता है। कुछ, लेकिन सभी नहीं, कार्यक्रम विभिन्न गैर-शून्य निकास कोड के साथ विभिन्न प्रकार की विफलताओं के बीच अंतर करते हैं; उदाहरण के लिए grep
आम तौर पर 0 लौटाता है यदि पैटर्न पाया गया था, 1 अगर यह नहीं था, और 2 (या अधिक) अगर कोई त्रुटि थी जैसे कि एक लापता फ़ाइल।
यह सम्मेलन यूनिक्स के गोले में बहुत कठिन है। उदाहरण के लिए, इन sh
, bash
और अन्य बॉर्न-जैसे गोले, if
स्टेटमेंट 0 एग्जिट स्टेटस को सक्सेस / ट्रू, और नॉन-जीरो एग्जिट स्टेटस को फेल / झूठे मानते हैं:
if your-command
then
echo ok
else
echo FAILURE
fi
मेरा मानना है कि एमएस विंडोज के तहत कन्वेंशन समान हैं।
अब निश्चित रूप से आपको अपने स्वयं के कार्यक्रम को लिखने से रोकना नहीं है जो अपरंपरागत निकास कोड का उपयोग करता है, खासकर यदि कुछ और इसके साथ बातचीत करने के लिए नहीं जा रहा है, लेकिन ध्यान रखें कि आप एक अच्छी तरह से स्थापित सम्मेलन का उल्लंघन कर रहे हैं, और यह वापस आ सकता है और आपको बाद में काट सकता है। ।
इस तरह की जानकारी को वापस करने के लिए एक प्रोग्राम का सामान्य तरीका यह है कि इसे प्रिंट करें stdout
:
status = $(your-command)
echo Result is $status
set -e
कहीं रखा था ।