इसके दस्तावेज़ीकरण के अनुसार, बैश का इंतजार तब तक किया जाता है जब तक कि पाइप लाइन की सभी कमांड जारी रखने से पहले समाप्त नहीं हो जाती
मूल्य वापस करने से पहले शेल पाइपलाइन में सभी कमांड का इंतजार करता है।
तो कमांड yes | trueतुरंत खत्म क्यों करता है ? yesलूप हमेशा के लिए नहीं होना चाहिए और पाइप लाइन को कभी वापस नहीं करना चाहिए ?
और एक शकुन: पोसिक्स कल्पना के अनुसार , शेल पाइपलाइन अंतिम कमांड के खत्म होने के बाद या तो वापस लौटने का विकल्प चुन सकते हैं या तब तक इंतजार कर सकते हैं जब तक कि सभी कमांड खत्म न हो जाएं। क्या आम गोले इस अर्थ में अलग व्यवहार करते हैं? क्या ऐसे कोई गोले हैं जहाँ yes | trueहमेशा के लिए लूप होगा?
trueमूल रूप से एक {return 0;}कार्यक्रम है, इसलिए मैं इसे लंबे समय तक चलने की उम्मीद नहीं करूंगा, हमेशा के लिए अकेले रहने दें।
yes | tee >(true) >/dev/nullजैसा कि आप उम्मीद करते हैं, btw, जैसाteeकि सभी लेखकों के मरने तक जारी रहेगा, इसलिएtrueबाहर निकलने से यह पूरी तरह से बाधित नहीं होगा।