সর্বদা ত্রুটিটিকে / dev / নাল এ পুনঃনির্দেশ করুন


22

আমি জানি যে আমি ত্রুটি বার্তাগুলি /dev/nullনীচের সিনট্যাক্সটি ব্যবহার করে একটি আদেশ থেকে পুনর্নির্দেশ করতে পারি :

command arg1 arg2 2>/dev/null

তবে ডিফল্টভাবে এটি করার কোনও উপায় আছে যাতে ত্রুটি বার্তাগুলি সর্বদা যায় /dev/null, আমি অন্যথায় উল্লেখ না করেই ?


1
সংক্ষেপে: হ্যাঁ - / dev / stderr / dev / null এ পুনঃনির্দেশ করুন। তবে, যদি আপনি নিজে থেকে এটি বের করতে না পারেন তবে আপনার চেষ্টা করা উচিত নয়, কারণ আপনি সাফল্যের চেয়ে মারাত্মক কিছু ভাঙার সম্ভাবনা বেশি।
বেনুবার্ড

@ বেনুবার্ড স্ট্ডার! = / দেব / স্টডার এই ফাইলটি পুনর্নির্দেশ করা কিছুই করবে না। / Dev / এ থাকা ফাইলটি কেবল সুবিধার জন্য।
ক্রিস ডাউন

@ ক্রিসডাউন আপনি ঠিক বলেছেন, / dev / stderr কেবল একটি লিঙ্ক। তবুও, প্রচুর প্রক্রিয়াগুলি এফডি / 2 এর পরিবর্তে এতে লিখতে পারে যা আপনি পুনঃনির্দেশ করতে পারেন। এটি সেখান থেকে আরও জটিল হয়ে যায় - এজন্য আমি কোনও উত্তরের পরিবর্তে একটি মন্তব্য রেখেছিলাম :)।
বেনুবার্ড

উত্তর:


29

প্রচুর প্রোগ্রাম স্টার্ডারে আউটপুট প্রেরণ করে যা আসলে ত্রুটির পরিচায়ক নয়। উদাহরণস্বরূপ, কিছু প্রোগ্রামে এটি তথ্য প্রদর্শন করতে ব্যবহৃত হয় যা অন্যথায় প্রোগ্রামের আউটপুটকে প্রভাবিত করে (যা অন্য কোনও প্রোগ্রামে পাইপ দেওয়ার জন্য ডিজাইন করা হয়েছে)। তবে আপনি এটি করতে পারেন:

exec 2>/dev/null

আমি কোনও স্ক্রিপ্টের বাইরে এটি করার পরামর্শ দেব না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.