निकास से नीचे कमांड क्यों नहीं है? बाहर निकलने के बजाय, लूप अनिश्चित काल तक चलता है।
जब मैंने अधिक जटिल सेटअप का उपयोग करके इस व्यवहार की खोज की, तो कमांड का सबसे सरल रूप निम्न के लिए कम हो जाता है।
बाहर नहीं निकलता:
while /usr/bin/true ; do echo "ok" | cat ; done | exit 1
ऊपर कोई टाइपो नहीं हैं। प्रत्येक '|' एक पाइप है। The एग्जिट 1 ’एक और प्रक्रिया के लिए खड़ा है जो भाग गया और बाहर हो गया।
मैं उम्मीद करता हूं कि "निकास 1" के कारण लूप पर एसआईजीपीआईपीई होगा (कोई पाठक के साथ पाइप पर लिखें) और लूप को बाहर करने के लिए। लेकिन, लूप चालू रहता है।
आज्ञा क्यों नहीं रुकती?