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