Bash:
স্ট্যান্ডার্ড এররে লিখন
কিভাবে:
বাশে, আউটপুটকে stderr এ রিডাইরেক্ট করতে >&2
ব্যবহার করা হয়। এখানে একটি বেসিক উদাহরণ দেওয়া হল:
echo "This is a normal message"
echo "This is an error message" >&2
এই স্ক্রিপ্ট চালানো হলে, কনসোলে উভয় মেসেজই দেখানো হবে, কিন্তু যদি আপনি তাদের রিডাইরেক্ট করেন, তাহলে আপনি stdout থেকে stderr কে পৃথক করতে পারবেন। উদাহরণস্বরূপ:
bash script.sh > output.txt 2> error.txt
output.txt
তে "This is a normal message"
থাকবে, অন্যদিকে error.txt
ক্যাপচার করবে "This is an error message"
।
একটি বাস্তবিক ব্যবহারের ক্ষেত্রে, ধরুন একটি স্ক্রিপ্ট যা ফাইলগুলি প্রসেস করে এবং যদি কোন ফাইল না থাকে তবে একটি এরর রিপোর্ট করে:
filename="example.txt"
if [ ! -f "$filename" ]; then
echo "$filename does not exist!" >&2
exit 1
else
echo "Processing $filename"
fi
example.txt
না থাকার সময় কনসোলে সরাসরি সাম্পল আউটপুট:
example.txt does not exist!
বাশে stderr হ্যান্ডেল করার জন্য কোনো সরাসরি তৃতীয়-পক্ষের লাইব্রেরি নেই, যেহেতু রিডাইরেকশন স্বাভাবিকভাবে সমর্থিত এবং সাধারণত যথেষ্ট। তবে, জটিল অ্যাপ্লিকেশনগুলির জন্য, লগিং ফ্রেমওয়ার্ক অথবা বাইরের লগিং টুলস যেমন syslog
অথবা log4bash
উভয় stdout এবং stderr কে আরও কার্যকরীভাবে ম্যানেজ করার জন্য অন্তর্ভুক্ত করা যেতে পারে।