क्या एक मानक आदेश है जो हमेशा एक विफलता के साथ बाहर निकलता है?


42

मैं अपनी स्क्रिप्ट का परीक्षण एक कमांड के साथ करना चाहता हूं जो विफल हो। मैं खराब तर्कों के साथ मौजूदा कमांड का उपयोग कर सकता हूं। मैं एक साधारण स्क्रिप्ट भी लिख सकता था जो तुरंत एक विफलता के साथ बाहर निकलती है। ये दोनों मेरे लिए करना और काम करना आसान है, लेकिन अगर इस उद्देश्य के लिए कोई मानक आदेश है, तो मैं इसके बजाय इसका उपयोग करना चाहूंगा।


false, लेकिन किसी भी गैर-मौजूद आदेश।
कुसलानंद

जवाबों:


51

आप उपयोग कर सकते हैं false( /bin/false, /usr/bin/false, या खोल निर्मित):

$ false || echo It failed.
It failed.
$

आप exit 1किसी सबशेल से भी उपयोग कर सकते हैं :

$ (exit 1) || echo Gosh, it failed too.
Gosh, it failed too.
$

इसके अतिरिक्त, आप आंशिक रूप से किसी भी संख्या में 1-255, समावेशी के साथ निकास से कॉल कर सकते हैं। (अधिकांश गोले बाहर निकलने के लिए दिए गए किसी भी अन्य नंबर पर एक modulo 255 ऑपरेशन को लागू करेंगे, इसलिए व्यवहार में आप अन्य संख्याओं के साथ दूर हो सकते हैं, हालांकि वे पूर्वोक्त सीमा में सम्‍मिलित हैं। लेकिन कुछ गोले अन्य चीजों को भी करेंगे, उदाहरण के लिए बाहर निकलें। एक नकारात्मक मान के साथ कहा जाता है, तो एक सिंटैक्स त्रुटि (अभी भी एक विफलता की स्थिति)। यूनिक्स जैसे सिस्टम केवल 0-255 की सीमा के भीतर निकास कोड का समर्थन करते हैं, यही वजह है कि आप दिए गए अन्य मूल्यों के लिए अच्छी तरह से परिभाषित व्यवहार पर भरोसा नहीं कर सकते हैं सभी गोले में बाहर निकलने के लिए।)
mtraceur

1
और सामान्य ज्ञान के रूप में, जब तक आपको वास्तव में पुराने / अस्पष्ट गोले के लिए पोर्टेबिलिटी की आवश्यकता नहीं होती है, तो आप भी कर सकते हैं ! :(या कोई अन्य आदेश जो सामान्य रूप से सफलता देता है)। !निम्नानुसार आदेश की निकास स्थिति को नकारने के लिए कहता है। :सिर्फ नोप बिलिन कमांड है जो हमेशा सफलता के साथ बाहर निकलता है। ( !कमांड के नकारा होने से पहले और बाद में एक जगह छोड़ना सुनिश्चित करें , अन्यथा यह एक !चरित्र के साथ शुरू होने वाले एक कमांड के रूप में पार्स करने की कोशिश करेगा - या bashइंटरैक्टिव मोड में जैसे गोले के मामले में , यह इसे एक के रूप में पार्स करता है उन विशेष इतिहास संशोधक।)
mtraceur
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.