হ্যাঁ, stderr
যখন ভুল যুক্তি ব্যবহার করা হয় তখন কোনও বার্তা প্রদর্শন করুন । এবং যদি এটির ফলেও অ্যাপ্লিকেশনটি প্রস্থান হয়, তবে শূন্য-বহির্গমন স্থিতি সহ প্রস্থান করুন।
ডায়গনিস্টিক বার্তাগুলির জন্য বা ব্যবহারকারীর মিথস্ক্রিয়ের জন্য আপনার স্ট্যান্ডার্ড ত্রুটি স্ট্রিম ব্যবহার করা উচিত । ডায়াগনস্টিক বার্তাগুলিতে ত্রুটি বার্তা, সতর্কতা এবং অন্যান্য বার্তাগুলি অন্তর্ভুক্ত রয়েছে যা সঠিকভাবে কাজ করার সময় ইউটিলিটির আউটপুটের অংশ নয় ("সঠিকভাবে" যার অর্থ ব্যতিক্রমী কিছুই ঘটছে না, যেমন ফাইলগুলি সন্ধান করা হচ্ছে না বা যা কিছু হতে পারে)।
অনেকগুলি শেল (সমস্ত?) প্রদর্শনের অনুরোধ জানায়, ব্যবহারকারীদের কী কী এবং মেনু ইত্যাদির নির্দেশনা দেয় stderr
যাতে পুনর্নির্দেশ stdout
আপনাকে অর্থপূর্ণ উপায়ে শেলের সাথে ইন্টারঅ্যাক্ট করতে বাধা দেয় না।
নিম্নলিখিত এই বিষয়ে একটি ব্লগ পোস্ট থেকে :
এটি ইউনিক্স পাইপের উদ্ভাবক ডগ ম্যাকিলারয়ের একটি উক্তি, কীভাবে কী stderr
হয়েছে তা ব্যাখ্যা করে । 'v6' 1976 সালে প্রকাশিত মূল ইউনিক্স অপারেটিং সিস্টেমের নির্দিষ্ট সংস্করণের একটি সংস্করণ উল্লেখ করছে।
সমস্ত প্রোগ্রাম স্ট্যান্ডার্ড আউটপুট উপর ডায়গনিস্টিকস স্থাপন। আউটপুটটিকে fi লেতে পুনঃনির্দেশ করা হলে এটি সর্বদা সমস্যার সৃষ্টি করে, তবে আউটপুটটি একটি অনিরাপদ প্রক্রিয়াতে প্রেরণ করা হলে অসহনীয় হয়ে ওঠে। তবুও, স্ট্যান্ডার্ড-ইনপুট-স্ট্যান্ডার্ড-আউটপুট মডেলের সরলতা লঙ্ঘন করতে রাজি নয়, লোকেরা ভি -6 এর মাধ্যমে এই অবস্থাটিকে সহ্য করে। এর খুব অল্প সময়ের মধ্যেই ডেনিস রিচি স্ট্যান্ডার্ড ত্রুটি পরিচয় করিয়ে গর্ডিয়ান গিঁট কাটলেন। এটা যথেষ্ট ছিল না। পাইপলাইনগুলির সাথে ডায়াগনস্টিকগুলি এক সাথে চলমান বেশ কয়েকটি প্রোগ্রামের থেকে আসতে পারে। তাদের সনাক্ত করার জন্য ডায়াগনস্টিকগুলি প্রয়োজন।
- ডগ ম্যাকিল্রয়, "এ রিসার্চ ইউনিক্স রিডার: প্রোগ্রামার ম্যানুয়াল, ১৯ 1971১-১৯8686 থেকে টীকাগুলি অংশ"
"নিজেকে চিহ্নিত করা" এর অর্থ সহজভাবে বলা "আরে! এটা আমি কথা বলছি! এটি ভুল হয়েছে: [...]":
$ ls nothere
ls: nothere: No such file or directory
এটি stderr
করা বেশি পছন্দনীয়, যেহেতু এটি অন্যথায় যা পড়ছিল তা পড়তে পারা যায় stdout
(তবে আমরা ls
যাইহোক এটি করি না , আমরা কি করি?)।