मैं एक ऐसी स्क्रिप्ट बना रहा हूं जो डेटा के पूर्वनिर्धारित सेट को संभालता है, जो फ़ाइल में आउटपुट करता है। मैं एक चेतावनी पॉप अप करना चाहता हूं जब एक डेटाम (जो कि प्रत्येक सेट में हमेशा "नियमित" होता है) अलग-अलग बताता है कि यह मान अनचाहे है (क्योंकि मुझे नहीं पता कि यह डेटा को कैसे प्रभावित करता है)। क्या मुझे इस चेतावनी को stderr या stdout पर आउटपुट करना चाहिए?क्या मुझे STDERR या STDOUT को चेतावनियां आउटपुट करनी चाहिए?
उत्तर
अगर मैंने इस स्क्रिप्ट के आउटपुट को बचाया है (यानी केवल स्टडआउट) ताकि मैं इसे बाद में संसाधित कर सकूं, क्या यह चेतावनी आउटपुट को कैसे पार्स किया जा सकता है? इसके अलावा, अगर आउटपुट को दूसरी प्रक्रिया में पाइप किया जाता है, तो चेतावनी टर्मिनल पर दिखाई देनी चाहिए, इसलिए उपयोगकर्ता इसे तुरंत देखता है।
उन कारणों से, सामान्य रूप से, आप stderr को चेतावनी आउटपुट करते हैं।
असली सवाल यह है कि: यदि कोई व्यक्ति आपकी स्क्रिप्ट के आउटपुट को फ़ाइल में रीडायरेक्ट करना चाहता था, तो क्या आप फ़ाइल में चेतावनी डालेंगे, या उपयोगकर्ता को निर्देशित करेंगे?
यदि आप चेतावनी के परिणामस्वरूप उपयोगकर्ता को कुछ कार्रवाई करने की उम्मीद कर रहे हैं, तो इसे STDERR पर जाना चाहिए। अगर कुछ डाउनस्ट्रीम स्क्रिप्ट को चेतावनी से फिसलने की संभावना है, तो इसे एसटीडीईआरआर में जाना चाहिए।
चेतावनी stderr पर जाना चाहिए।
दूसरों द्वारा प्रस्तुत अंकों के अलावा (डाउनस्ट्रीम प्रक्रियाओं के लिए त्रुटियों को पार्स करने और कंसोल पर उपयोगकर्ता से त्रुटि छिपाने के कारण), लचीलापन का एक मुद्दा है।
यदि उपयोगकर्ता stderr से चेतावनी नहीं चाहता है कि डाउनस्ट्रीम प्रक्रिया पर जाएं जो stdout को पार्स कर रहा है, तो उन्हें कुछ विशेष करने की ज़रूरत नहीं है।
your_script | downstream_process
उपयोगकर्ता stderr से चेतावनी एक नीचे की प्रक्रिया है कि stdout और stderr पार्स जाएगा में जाना चाहता है, तो उपयोगकर्ता 2> & 1 का उपयोग stdout में stderr रीडायरेक्ट करने के लिए कर सकते हैं।
your_script 2>&1 | downstream_process
आप उत्पादन दोनों चेतावनी और stdout के लिए किसी भी सामान्य डेटा, उपयोगकर्ता सब कुछ पार्स करने के बिना डेटा की चेतावनी को अलग करने का कोई अच्छा तरीका है। तो stderr को चेतावनियां भेजना आपकी स्क्रिप्ट को और अधिक लचीलापन देता है।
- 1. क्या मुझे stderr या stdout पर संदेश लॉग इन करना चाहिए?
- 2. STDERR STDOUT
- 3. क्या मुझे कमांड लाइन स्विच या प्रोगमा के साथ पर्ल चेतावनियां चालू करनी चाहिए?
- 4. 'ऐप --help' stdout या stderr पर जाना चाहिए?
- 5. विम फिल्टर और stdout/stderr
- 6. stdout बारे में/stderr पुनर्निर्देशन
- 7. एलएलवीएम stdin/stdout/stderr
- 8. पॉपिंग stderr और stdout
- 9. paramiko stdout और stderr गठबंधन
- 10. subprocess.Popen(), stderr और stdout का उपयोग करते समय कोई आउटपुट
- 11. stdout के बजाय wget आउटपुट stderr क्यों करता है?
- 12. बैश stdout/stderr दो स्थानों पर पुनर्निर्देशित?
- 13. लॉगिंग stdout और stderr बयान
- 14. क्या मुझे पर्सफोर्स को अपरिवर्तित फाइलें जमा करनी चाहिए?
- 15. सी खोल में stdout को stderr को रीडायरेक्ट करें
- 16. एक लॉगफाइल पर STDOUT और STDERR लिखें,
- 17. कई फ़ाइलों में stdout/stderr को रीडायरेक्ट करना
- 18. जावा प्रक्रिया में मुख्य प्रक्रिया stdout/stderr में बाल प्रक्रिया stdout/stderr को पुनर्निर्देशित करने के लिए कैसे करें?
- 19. मुझे भाषा (CurrentThread.CurrentCulture) कहां सेट करनी चाहिए?
- 20. क्या मुझे अब सीयूडीए ऐप्स बनाना चाहिए, या डायरेक्टएक्स 11 की प्रतीक्षा करनी चाहिए?
- 21. स्प्राउटकोर क्या है और मुझे इसकी परवाह क्यों करनी चाहिए?
- 22. क्या मुझे एसवीएन में .xcodeproj फ़ाइल प्रतिबद्ध करनी चाहिए?
- 23. इकाई परीक्षणों में stderr आउटपुट को छिपाएं
- 24. क्या मुझे सभी ईवेंट हैंडलर सदस्यता रद्द करनी चाहिए?
- 25. पायथन कार्यों से stdout/stderr प्रिंट को दबाएं
- 26. क्या मुझे असामान्य समाप्ति पर आवंटित स्मृति मुक्त करनी चाहिए?
- 27. क्या यह अप्रचलित सूची लौटने के लिए स्वीकार्य है या क्या मुझे सरणी वापस करनी चाहिए?
- 28. पावरहेल में stderr आउटपुट को दबाने के लिए कैसे?
- 29. googletest के साथ stdout/stderr कैप्चर कैसे करें?
- 30. गिट stderr आउटपुट पाइप नहीं कर सकता
तो इसे बिना किसी मामले में जाना चाहिए? या क्या आपने एसटीडीईआरआर के दो संदर्भों में से एक को STDOUT होने का इरादा किया था? –
मेरा मतलब एसटीडीईआरआर दोनों पर था। वे दो मामले हैं जहां आपको इसे stderr को भेजने के लिए काफी कुछ है। एकमात्र बार मैं इसे स्टडआउट पर जाने के बारे में सोचने के बारे में सोच सकता हूं, यदि स्क्रिप्ट का आउटपुट मानव उपभोग के लिए है (हो सकता है कि आप आउटपुट को किसी को देखने के लिए ईमेल करने जा रहे हों), और हो सकता है कि आप चेतावनियों का पालन करना चाहें stderr पुनर्निर्देशित करने के लिए याद किए बिना आउटपुट। – Martin