" लिनक्स: पूर्ण संदर्भ 6 वें संस्करण " (पृष्ठ 44) के अनुसार, आप पुनर्निर्देशन प्रतीकों का उपयोग करके केवल STDERR को पाइप कर सकते हैं |&
।
मैंने इसे जांचने के लिए एक बहुत ही सरल स्क्रिप्ट लिखी है:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
मैं इस स्क्रिप्ट को इस तरह चलाता हूं:
./script.sh |& sed 's:^:\t:'
संभवतया, केवल STDERR पर छपी लाइनें ही इंडेंट की जाएंगी। हालाँकि, यह वास्तव में इस तरह से काम नहीं करता है, जैसा कि मैं देख रहा हूँ:
Normal Text.
Error Text.
मुझसे यहां क्या गलत हो रहा है?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'
काम नहीं करता, यानी इरादा के रूप में: रीडायरेक्टscript.sh
कीstdout
(जो, मैनुअल टुकड़ा पहले होना चाहिए के अनुसार), तो अनुमति देने केgrep
स्क्रिप्ट के कार्रवाई करने के लिएstderr
। इसके बजाय,stderr
और tdout` दोनों का अंतstdout_goes_here