इस पैटर्न का कारण यह है कि डेबियन संकुल में अनुरक्षक स्क्रिप्ट के साथ शुरू होता है set -e
, जो शेल को बाहर निकलने का कारण बनता है जैसे ही कोई भी कमांड (सख्ती से बोलना, पाइपलाइन, सूची या मिश्रित कमांड) एक गैर-शून्य स्थिति के साथ बाहर निकलता है। यह सुनिश्चित करता है कि त्रुटियाँ जमा न हों: जैसे ही कुछ गलत होता है, स्क्रिप्ट निरस्त हो जाती है।
ऐसे मामलों में जहां स्क्रिप्ट में एक कमांड को विफल करने की अनुमति दी जाती है, जोड़ना || true
यह सुनिश्चित करता है कि परिणामस्वरूप कंपाउंड कमांड हमेशा स्थिति शून्य के साथ बाहर निकलता है, इसलिए स्क्रिप्ट का उपयोग नहीं करता है। उदाहरण के लिए, एक निर्देशिका को हटाने से एक घातक त्रुटि नहीं होनी चाहिए (एक पैकेज को हटाने से रोका जा सकता है); इसलिए हम उपयोग करेंगे
rmdir ... || true
चूँकि rmdir
इसमें त्रुटियों को अनदेखा करने का विकल्प नहीं है।
||:
यह लिखने का एक और मुहावरेदार तरीका है - (यह:
एक और प्रविष्टि है, जो बाॅडीइन की ओर इशारा करते हुए बनाया गया हैtrue
- लेकिन वापस बॉर्न के लिए भी एक बिलियन होने की गारंटी दी गई है;) उन्होंने कहा, POSIX श के लिए,true
इसी तरह एक बिलिन होने की गारंटी है - तो यह है सम-दूरस्थ-आधुनिक समय में दक्षता की तुलना में अधिक मरोड़)।