আমি সাধারণত বোর্ন-পুনরায় শেলের কাজগুলি করার পদ্ধতি অনুসরণ করার পরামর্শ দেব কারণ বাশ তাত্ক্ষণিকভাবে সবচেয়ে জনপ্রিয় ইউনিক্স শেল। বাশ সাধারণত &>
বা হয় ব্যবহার করে 2>&1
। আইএমএইচও, উভয়ই "নিখুঁত" নয়, তাই আমি সেই বাজে কথা ভুলে যাওয়ার পরামর্শ দিই। বাস্তবে, কোনটি আপনার ব্যবহার করা উচিত তা আপনি কী করার চেষ্টা করছেন তার উপর নির্ভর করে।
2>&1
স্ট্ডআউটরের সাথে স্টার্ডারকে একীভূত করে, এটি কার্যকর হতে পারে যদি উদাহরণস্বরূপ, আপনি স্টার্ডার পাঠ্যটি পাইপ করতে চান। সুতরাং, উদাহরণস্বরূপ, যদি আপনি দেখতে চান যে কোনও প্রোগ্রাম কোনও নির্দিষ্ট স্টাডার বার্তা প্রিন্ট করে কিনা, তবে আপনার পর্দাটি (সম্ভবত) অযৌক্তিক আবর্জনায় ভরাট না চায়, আপনি এমন কিছু করতে পারেন program 2>&1 | grep crashed
যা একটি প্রোগ্রাম থেকে স্টাডআউট এবং স্টডারকে অনুসন্ধান করবে "ক্র্যাশ" শব্দের জন্য "প্রোগ্রাম" নামে পরিচিত।
অন্যদিকে, আপনি যদি কোনও কিছু মুদ্রণের জন্য কোনও প্রোগ্রাম না চান, আপনি কেবল চালনা করতে পারেন program &> /dev/null
, যা স্টার্ডার এবং স্টাডআউট উভয়ই / dev / নালকে পুনর্নির্দেশ করবে, একটি বিশেষ ফাইল যা ম্যাজিকভাবে জিনিসগুলি অদৃশ্য করে দেয়। অথবা, আপনি যদি কোনও প্রোগ্রামের আউটপুট সংরক্ষণ করতে চান (সম্ভবত কোনও বাগ বা কোনও কিছু জানাতে), আপনি স্ট্ডার এবং স্টডআউট উভয়ই একটি ফাইলে পুনর্নির্দেশ করতে পারেন: program &> log.txt
সমস্ত ডেটা "লগ.এক্সটিএসটি" নামে ফাইলে পুনর্নির্দেশ করবে। আপনি যদি চান, আপনি stdout এবং stderr এর মাধ্যমে program 2> log.txt > log.txt
বা পুনঃনির্দেশ করতে পারেন program 2>&1 | cat > log.txt
, উভয়ের ব্যবহারের মতোই একই প্রভাব ফেলবে &>
। আপনি যদি এমন কিছু করেন তবে program 2>&1 > file
কেবল স্টাডআউট পুনঃনির্দেশিত হবে, তবে স্ট্ডার এখনও অন্য প্রোগ্রামে পাইপ করা যেতে পারে যেমন বিড়াল, যা উপরে বর্ণিত হিসাবে পুনঃনির্দেশিত হতে পারে। তবে, টাইপিং&>
উপরের উদাহরণগুলির তুলনায় আরও সহজ, যেহেতু এতে কম অক্ষর টাইপ করা জড়িত (এবং এটি মানুষের পক্ষে পড়া সহজ)। মনে রাখবেন যে program 2> log.txt > log.txt
নন-ব্যাশ শেলগুলিতে আরও বেশি কাজ করার সম্ভাবনা রয়েছে।
পিএস: আপনি যদি অন্যান্য শাঁস ব্যবহার করে লোকদের সম্পর্কে উদ্বিগ্ন হন তবে আপনার স্ক্রিপ্টের প্রথম লাইনে "যাদু নম্বর" বা "শেবাং" নামক কিছু যুক্ত করতে পারেন। এটি অন্যান্য কম্পিউটারগুলি (বিশেষত যারা ইউনিক্সের মতো অপারেটিং সিস্টেমগুলি চালাচ্ছেন) কোনও স্ক্রিপ্ট কার্যকর করতে কোন প্রোগ্রামটি ব্যবহার করবেন তা জেনে রাখার জন্য এটি মূলত একটি উপায়। বিভিন্ন স্ক্রিপ্ট বিভিন্ন শেবাং ব্যবহার করে। বাশ স্ক্রিপ্টের জন্য একটি শেবাং এর মতো দেখাচ্ছে:
#!/bin/bash
আপনি যদি প্রদত্ত স্ক্রিপ্টের প্রথম লাইন হিসাবে উপরেরটি ব্যবহার করেন, তবে সাধারণত বর্ণিত স্ক্রিপ্টটি কার্যকর করতে বাশ ব্যবহার করা হবে। এটি ভুল শেলের সাহায্যে কারও জন্য দুর্ঘটনাক্রমে স্ক্রিপ্টটি কার্যকর করা আরও বেশি জটিল করে তুলবে।
পিএস: আমি মিথ্যা বলব না: এখন অবধি, আমি জানতাম না যে কেউ ব্যবহার করতে পারে >&
, তবে যতদূর বাশ যায়, মনে হয় এটি একই রকম হয় &>
। প্রতিদিনই আপনি কিছু নতুন শিখছেন.