Bash:
मानक त्रुटि के लिए लिखना
कैसे करें:
Bash में, आप >&2
का उपयोग करते हैं आउटपुट को stderr में रीडायरेक्ट करने के लिए। यहाँ एक बुनियादी उदाहरण है:
echo "यह एक सामान्य संदेश है"
echo "यह एक गलती का संदेश है" >&2
यह स्क्रिप्ट चलाने पर कंसोल पर दोनों संदेश दर्शाई देंगे, लेकिन यदि आप उन्हें रीडायरेक्ट करें, तो आप stdout को stderr से अलग कर सकते हैं। उदाहरण के लिए:
bash script.sh > output.txt 2> error.txt
output.txt
में "यह एक सामान्य संदेश है"
, जबकि error.txt
में "यह एक गलती का संदेश है"
होगा।
एक व्यवहारिक उपयोग के मामले में, फाइलों को प्रोसेस करने वाले स्क्रिप्ट को विचार करें जो एक फाइल मौजूद नहीं होने पर एक गलती की सूचना देता है:
filename="example.txt"
if [ ! -f "$filename" ]; then
echo "$filename मौजूद नहीं है!" >&2
exit 1
else
echo "$filename की प्रोसेसिंग हो रही है"
fi
कंसोल में सीधे सैंपल आउटपुट जब example.txt
मौजूद नहीं होता:
example.txt मौजूद नहीं है!
Bash में stderr को संभालने के लिए कोई सीधे थर्ड-पार्टी लाइब्रेरीज नहीं हैं, क्योंकि रीडायरेक्शन स्वाभाविक रूप से समर्थित है और सामान्य रूप से पर्याप्त है। हालांकि, जटिल एप्लिकेशनों के लिए, लॉगिंग फ्रेमवर्क या बाहरी लॉगिंग उपकरण जैसे कि syslog
या log4bash
को दोनों stdout और stderr को अधिक प्रभावी ढंग से प्रबंधित करने के लिए शामिल किया जा सकता है।