जवाबों:
केवल तीन तरीके हैं जो मैं यह निर्धारित करने के लिए जानता हूं कि एसटीडीयूएसटी और एसटीडीआरआर के लिए एक कार्यक्रम क्या होगा
प्रलेखन पढ़ें। या
पुनर्निर्देशन के साथ प्रयोग ion
†उदाहरण के लिए:
program > program.stdout 2> program.stderr
फिर दो आउटपुट फ़ाइलों को देखें कि प्रोग्राम ने STDOUT को क्या लिखा है और यह STDERR को क्या लिखा है।
रीडायरेक्शन के बजाय tee
यदि आप स्क्रीन और साथ ही फ़ाइल में जारी रखने के लिए आउटपुट की आवश्यकता है, तो आप पाइप कर सकते हैं । Https://stackoverflow.com/q/692000/477035 देखें
आपके टिप्पणी अनुरोध के आधार पर:
{ { command; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'
stdout
और 2 = से परे stderr
) कोष्ठक के आंतरिक सेट का आउटपुट लेने के लिए, और stdout
एक sed
कमांड के stderr
माध्यम से चलता है , जबकि से होकर जाता है एक अलग।
{ { { { echo "stdout" ; echo "stderr">&2; } 2>&3; } 3>&1 1>&2 | awk '{print "ERROR:",$0}' 1>&3; } 3>&2 2>&1; }
यदि आप इसे एक बार बंद करना चाहते हैं, तो उनमें से एक को कहीं और पुनर्निर्देशित करें।
उदाहरण, मानक को पुनर्निर्देशित करना >
।
ls -al> ls-l.txt (यहाँ कोई भी आउटपुट stdout से नहीं है, अगर आपको कुछ भी दिखता है तो उसे stderout आउटपुट होना चाहिए)
Stderr पुनर्निर्देशन उपयोग के लिए 2>
program | grep .
लाल रंग में STDOUT प्रिंट करता है।