मैं अतिरिक्त डायग्नोस्टिक संदेशों को लिखने के लिए एक नया वर्णनकर्ता खोलने के लिए बैश का उपयोग करने की कोशिश कर रहा हूं। मैं stderr का उपयोग नहीं करना चाहता, क्योंकि stderr केवल बैश द्वारा बुलाए गए कार्यक्रमों से आउटपुट होना चाहिए। मैं भी चाहता हूं कि मेरा कस्टम डिस्क्रिप्टर उपयोगकर्ता द्वारा पुनर्निर्देशित किया जा सके।बैश में, मैं एक लिखने योग्य फ़ाइल डिस्क्रिप्टर कैसे खोलूं जो बाहरी रूप से पुनर्निर्देशित है?
exec 3>/dev/tty
echo foo1
echo foo2 >&2
echo foo3 >&3
लेकिन जब मैं fd 3 रीडायरेक्ट करने के लिए प्रयास करते हैं, उत्पादन अभी भी टर्मिनल के लिए लिखते हैं:
मैं इस कोशिश की।
$ ./test.sh >/dev/null 2>/dev/null 3>/dev/null
foo3
एक उपयोगी साइट [कड़ी] (http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/x13082.html) – Mike
आप एक [नामित पाइप] (http उपयोग करने में सक्षम हो सकता है। die.net/man/1/mkfifo)। स्पष्टीकरण के लिए –