पहले सन्निकटन के लिए, 0 सक्सेज है, नॉन-जीरो फेल है, जिसमें 1 सामान्य फेल्योर है, और एक विशिष्ट फेल होने से बड़ा कुछ भी नहीं है। झूठे और परीक्षण के तुच्छ अपवादों के अलावा, जो दोनों को सक्सेज के लिए 1 देने के लिए डिज़ाइन किए गए हैं, कुछ और अपवाद हैं जो मुझे मिले।
अधिक वास्तविक रूप से, 0 का अर्थ है सक्सेज या हो सकता है असफलता, 1 का अर्थ है सामान्य असफलता या शायद सक्सेज, 2 का अर्थ सामान्य विफलता है यदि 1 और 0 दोनों सक्सेज के लिए उपयोग किए जाते हैं, लेकिन शायद सक्सेज भी।
डिफाइन कमांड 0 देता है यदि तुलना की गई फाइलें समान हैं, 1 यदि वे भिन्न हैं, और 2 यदि बायनेरी भिन्न हैं। 2 का मतलब असफलता भी है। कम आदेश विफलता के लिए 1 देता है जब तक कि आप एक तर्क की आपूर्ति करने में विफल नहीं होते हैं, उस स्थिति में, यह विफल होने के बावजूद 0 से बाहर निकलता है।
अधिक कमांड और स्पेल कमांड विफलता के लिए 1 देता है, जब तक कि विफलता अस्वीकार की गई अनुमति, परिणामहीन फाइल या निर्देशिका को पढ़ने का प्रयास न हो। इनमें से किसी भी मामले में, वे असफल होने के बावजूद 0 से बाहर निकलते हैं।
तब expr कमांड sucess के लिए 1 देता है जब तक कि आउटपुट खाली स्ट्रिंग या शून्य नहीं होता है, उस स्थिति में, 0 sucess है। 2 और 3 फेल हैं।
फिर ऐसे मामले हैं जहां सफलता या विफलता अस्पष्ट है। जब grep एक पैटर्न खोजने में विफल रहता है, तो यह 1 से बाहर निकलता है, लेकिन यह वास्तविक विफलता के लिए 2 से बाहर निकलता है (जैसे अनुमति अस्वीकृत)। किस्टल भी 1 से बाहर निकलता है जब वह एक टिकट खोजने में विफल रहता है, हालांकि यह वास्तव में विफलता की तुलना में कोई अधिक नहीं है जब grep एक पैटर्न नहीं ढूंढता है, या जब आप एक खाली निर्देशिका प्राप्त करते हैं।
इसलिए, दुर्भाग्य से, यूनिक्स शक्तियां नियमों के किसी भी तार्किक सेट को लागू करने के लिए प्रतीत नहीं होती हैं, यहां तक कि बहुत ही आमतौर पर उपयोग किए जाने वाले निष्पादन पर भी।