উত্তর:
পটভূমির জন্য:
প্রথমে এর কাজগুলি সামলানো যাক। রেফারেন্সের জন্য অ্যাডভান্স বাশ-স্ক্রিপ্টিং গাইড দেখুন ।
2>&-
এটির সাধারণ ফর্মটি হল M>&-
, যেখানে "এম" একটি ফাইল বর্ণনাকারী নম্বর number এটি যে কোনও ফাইল ডেস্ক্রিপ্টারের রেফারেন্সযুক্ত, অর্থাৎ "এম" এর জন্য আউটপুট বন্ধ করবে ।
2>/dev/null
এটির সাধারণ ফর্মটি হল M>/dev/null
, যেখানে "এম" একটি ফাইল বর্ণনাকারী নম্বর number এই ফাইলটি বর্ণনাকারী পুনর্চালনা করবে "এম" যাও, /dev/null
।
2>&1
এই এক সাধারণ ফর্ম M>&N
, যেখানে "এম" & "N" মানে ফাইল বর্ণনাকারী নম্বর আছে। এটি ফাইল বর্ণনাকারী "এম" এবং "এন" কে একক স্ট্রিমের সাথে সংযুক্ত করে ines
|&
এটি কেবল একটি সংক্ষেপণ 2>&1 |
। এটি বাশ 4 এ যুক্ত হয়েছিল।
&>/dev/null
এটি কেবল একটি সংক্ষেপণ >/dev/null 2>&1
। এটি ফাইল বর্ণনাকারী 2 (এসটিডিআরআর) এবং বর্ণনাকারী 1 (এসটিডিআউট) তে পুনর্নির্দেশ করে /dev/null
।
>/dev/null
এটি কেবল একটি সংক্ষেপণ 1>/dev/null
। এটি ফাইল বর্ণনাকারী 1 (STDOUT) এ পুনঃনির্দেশ করে /dev/null
।
আমি বাইরে অন্যান্য শাঁস অনেক মোকাবিলা না করে থাকেন csh
এবং tcsh
। বাশের পুনঃনির্দেশ অপারেটরগুলির তুলনায় সেই ২ জনের সাথে আমার অভিজ্ঞতা হ'ল বাশ সে ক্ষেত্রে সেরা in দেখুন tcsh শেল man পৃষ্ঠা আরো বিস্তারিত জানার জন্য।
আপনি যে কোনও আদেশ সম্পর্কে জিজ্ঞাসা করেছিলেন সেগুলির মধ্যে সরাসরি সিএসএস / টিসিএস সমর্থিত নয়। অনুরূপ ফাংশনগুলি তৈরি করতে আপনাকে বিভিন্ন সিনট্যাক্স ব্যবহার করতে হবে।
2>&-
বনাম 2>/dev/null
(তুলনায় যে কিছু "দুর্বল" লিখিত প্রোগ্রাম undrestand না অন্যান্য 2>&-
সঠিকভাবে)?
&>
bash
শুরু থেকেই ছিল (এবং বোর্ন এবং পসিক্সের সামঞ্জস্যতা ভঙ্গ করেছে কারণ এর অর্থ সেখানে আলাদা কিছু, যদিও আঘাত হানার সম্ভাবনা কম)। >&
এবং |&
আসুন (t)csh
(এবং এটি স্টাডারকে পুনঃনির্দেশ করার তাদের একমাত্র উপায়)। তারা zsh
শুরু থেকেই ছিল এবং কেবল সম্প্রতি যুক্ত হয়েছে bash
। আরও rc
ভাল ডিজাইন করা অপারেটরগুলির জন্য দেখুন ।
(+2-2=0)
। এখন, সংস্করণ অংশে, আমি খুব বেশি সম্পাদনা করি না, তবে এই ক্ষেত্রে আমি করব, কারণ এটি স্পষ্ট করে যে অপারেশন পরবর্তী ডেটা হবে N
। আমি আপনাকে উত্তরটি পড়েছি এবং এটি সব দিক থেকে খুব ভাল। এই ছোট্ট অস্পষ্টতা আমাকে ভাবতে পেয়েছিল, এজন্য সংস্করণটি। তবে ঠিক আছে, নিখরচায় এটিকে যুক্ত করুন বা প্রত্যাখ্যান করুন, যেমনটি আপনি করবেন। আমি আশা করি আমি বিষয়টি ব্যাখ্যা করতে পারতাম। ভাল কাজগুলো করতে থাকো.
এটি STDERR এবং STDOUT পুনর্নির্দেশের জন্য:
2>/dev/null
STDERR কে / dev / null এ পুনঃনির্দেশ করুন (কনসোলে প্রদর্শিত হতে বাধা দিন)
|&
পাইপড কমান্ডের (সেন্টিমিডি 1 এবং সেমিডিডি 2) এসটিডিআরতে এসটিডিআরআর এসটিডিআউট পুনর্নির্দেশ করুন
&>/dev/null
STDERR এবং STDOUT উভয়ই / dev / নালটিতে পুনঃনির্দেশ করুন (কনসোলটিতে কিছুই দেখায় না)
>/dev/null
STDOUT কে / dev / নালটিতে পুনঃনির্দেশ করুন (কেবল কনসোলটিতে STDERR শো দেখায়)
2>&-
পুনর্নির্দেশের সাহায্যে ব্যবহৃত ফাইল বিবরণকারী বন্ধ করার জন্য
এগুলি বোর্ন শেলগুলির জন্য সমস্ত স্ট্যান্ডার্ড পুনঃনির্দেশ পদ্ধতি।
|&
এবং পোর্টেবল &>/dev/null
হয় না ।
এটি নির্বাচিত উত্তরের একটি সংযোজন হিসাবে বিবেচনা করুন। আপনি জানতে চাইতে পারেন কোন ফর্মগুলি পসিক্স এবং কোনটি নয়।
দুটি পসিক্স ফর্ম জড়িত:
২.7.২ পুনঃনির্দেশ আউটপুট
পুনঃনির্দেশ আউটপুট জন্য দুটি সাধারণ ফর্ম্যাট:
[এন]> শব্দ
[এন]> | শব্দ
যেখানে nচ্ছিক এন ফাইল বর্ণনাকারী নম্বর উপস্থাপন করে। যদি নম্বরটি বাদ দেওয়া হয় তবে পুনঃনির্দেশটি স্ট্যান্ডার্ড আউটপুট (ফাইল বর্ণনাকারী 1) উল্লেখ করবে।
'>' ফর্ম্যাট ব্যবহার করে আউটপুট পুনর্নির্দেশ ব্যর্থ হবে যদি নোক্লোবার বিকল্পটি সেট করা থাকে (সেট-সি-এর বর্ণনা দেখুন) এবং শব্দের প্রসারিত নামযুক্ত ফাইলটি উপস্থিত রয়েছে এবং এটি একটি নিয়মিত ফাইল। অন্যথায়, '>' বা "> |" ব্যবহার করে পুনঃনির্দেশ ফর্ম্যাটগুলির দ্বারা ফাইলটির নাম প্রকাশিত শব্দের প্রসার থেকে ফলাফল তৈরি করা হবে এবং মনোনীত ফাইল বর্ণনাকারীর আউটপুট জন্য খোলা হবে বা যদি কোনও নির্দিষ্ট না করা থাকে তবে স্ট্যান্ডার্ড আউটপুট। যদি ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করা হবে; অন্যথায়, এটি খোলার পরে একটি খালি ফাইল হতে হবে।
-
২.7..6 একটি আউটপুট ফাইল বর্ণনাকারীর সদৃশ
পুনঃনির্দেশ অপারেটর:
[এন]> & শব্দ
অন্য থেকে একটি আউটপুট ফাইল বর্ণনাকারী নকল করতে হবে, বা একটি বন্ধ হবে। শব্দটি যদি এক বা একাধিক সংখ্যার কাছে মূল্যায়ন করে তবে n দ্বারা বর্ণিত ফাইল বর্ণনাকারী, বা n নির্দিষ্ট না করা থাকলে স্ট্যান্ডার্ড আউটপুট শব্দের দ্বারা বর্ণিত ফাইল বর্ণনাকারীর অনুলিপি হিসাবে তৈরি করা হবে; শব্দে অঙ্কগুলি যদি আউটপুটটির জন্য ইতিমধ্যে খোলা কোনও ফাইল বর্ণনাকারীর প্রতিনিধিত্ব না করে তবে একটি পুনর্নির্দেশ ত্রুটির ফলস্বরূপ; শেল ত্রুটির ফলাফল দেখুন। শব্দটি যদি '-' এ মূল্যায়ন করে তবে ফাইল বর্ণনাকারী এন, বা n নির্দিষ্ট না করা থাকলে স্ট্যান্ডার্ড আউটপুট বন্ধ থাকে। খালি নয় এমন একটি ফাইল বিবরণকারী বন্ধ করার চেষ্টা করা ত্রুটি হিসাবে চিহ্নিত হবে না। শব্দটি যদি অন্য কোনও কিছুর কাছে মূল্যায়ন করে তবে আচরণটি অনির্দিষ্ট।
অতএব:
Function POSIX-compat POSIX
2>&- Yes close
2>/dev/null Yes redir
2>&1 Yes dup
|& No
&>/dev/null No
>/dev/null Yes redir
>&/dev/null ? ?dup
শেষ লাইনটি মূল প্রশ্নে নয়, তবে এটি ব্যাশের অভিযোগ ছাড়াই কাজ করে। (এছাড়াও / dev / tty এর সাথে / dev / নাল প্রতিস্থাপনের সাথে কাজ করে)।
&>
জিএনইউ বাশ সামঞ্জস্যের পক্ষে সমর্থন করে , এটি ব্যবহার না করার জন্য এটি দৃ strongly়ভাবে উত্সাহিত হয়েছিল, কারণ এটি পার্সিংয়ের ফলে বিদ্যমান পসিক্স স্ক্রিপ্টগুলির শব্দার্থভাঙ্গা ভেঙে যেতে পারে এবং এমএসএক্স ইতিমধ্যে পসিএক্স মোডে অক্ষম করে।