স্ট্যান্ডার্ড এরর রিডিরেকশন

Last updated 4 months ago

একটা প্রোগ্রাম একাধিক স্ট্রীম বা চ্যানেলে তথ্য আদানপ্রদান করে। এই স্ট্রীমগুলোকে ব্যবহারিক প্রয়োজনে নাম বা সংখ্যা দিয়ে প্রকাশ করা হয় যাকে ফাইল ডেস্ক্রিপ্টর(file descriptor) বলে। শেল প্রোগ্রামের প্রথম তিনটি স্ট্রীমকে ডেস্ক্রিপ্টর 0, 1 ও 2 নাম দেয়। এরা যথাক্রমে ইনপুট, আউটপুট ও এরর এর স্ট্রীম। স্বাভাবিকভাবে '>' চিহ্ন ডেস্ক্রিপটর 1 রিডিরেক্ট করে কিন্তু আমরা এর সাথে এরর ডেস্ক্রিপ্টরের সংখ্যা যোগ করে অর্থাৎ '2>' চিহ্ন দিয়ে এরর রিডিরেক্ট করতে পারি।

আমরা যদি /bin/usr বলে কোনো ডিরেক্টরি না তৈরি করে থাকি তবে ডিফল্টভাবে এই ডিরেক্টরি আপনি সিস্টেমে পাবেন না। তাই এটাকে ls -l কমান্ডের সাথে ব্যবহার করলে এরর দেখাবে। আমরা এই এররটি ls-error.txt নামের একটি ফাইলে রিডিরেক্ট করছি:

me@howtocode-pc:~$ ls -l /bin/usr/ 2> ls-error.txt
me@howtocode-pc:~$ less ls-error.txt
ls: cannot access /bin/usr/: No such file or directory
(END)

রিডিরেক্ট করার ফলে স্ক্রীনে আমরা কোনো এররই দেখাবে না বরং আমরা less ls-error.txt কমান্ড দিয়ে ফাইলটি খুললে এরর মেসেজটি পাবো।