আমি ডেনিসের খুব সাধারণ ওয়ান-লাইনারকে কাজ করতে পারি না, সুতরাং এখানে আরও অনেক গুলিয়ে দেওয়া পদ্ধতি। আমি তার প্রথম চেষ্টা করব।
উল্লিখিত হিসাবে, আপনি পুরো স্ক্রিপ্টের জন্য স্ট্যান্ডার্ড ত্রুটি ও স্ট্যান্ডার্ড আউট রিডাইরেক্ট করতে এক্সিকিউট ব্যবহার করতে পারেন। ভালো লেগেছে:
exec > $LOGFILE 2>&1
এটি সমস্ত স্টাডার এবং stdout $ LOGFILE এ আউটপুট দেবে।
এখন, যেহেতু আপনি এটি কনসোলের পাশাপাশি একটি লগফাইলে প্রদর্শন করতে চান তাই আপনাকে এক্সিকিউটিভের জন্য একটি নামক পাইপ ব্যবহার করতে হবে, এবং পড়তে টিও করতে হবে।
(ডেনিসের ওয়ান-লাইনার প্রযুক্তিগতভাবে এটিও করে, যদিও স্পষ্টতই ভিন্ন উপায়ে) পাইপটি নিজেই তৈরি হয়েছিল mkfifo $PIPEFILE
। তারপরে নিম্নলিখিতটি করুন।
# একটি লগফাইলে টি লেখা শুরু করুন, তবে আমাদের নামক পাইপ থেকে এটির ইনপুট টানুন।
টি $ লগফিল <$ পাইপ ফাইল এবং
# কমান্ডের জন্য টিয়ের প্রক্রিয়া আইডি ক্যাপচার করুন।
TEEPID = $!
# স্ট্যাডার বাকী পুনঃনির্দেশ করুন এবং আমাদের নামী পাইপে স্টাডআউট করুন।
এক্সিকিউট> $ পাইপ ফাইল 2> & 1
প্রতিধ্বনি "এখানে আপনার আদেশগুলি তৈরি করুন"
প্রতিধ্বনি "তাদের সমস্ত স্ট্যান্ডার্ড আউট ছিঁড়ে যাবে" "
প্রতিচ্ছবি "সুতরাং তাদের মান ত্রুটি হবে"> & 2
# স্টার্ডার এবং স্টডআউট ফাইলের বর্ণনাকারী বন্ধ করুন।
এক্সিকিউট 1> & - 2> এবং -
# টিপ শেষ হওয়ার অপেক্ষা করুন এখন থেকে পাইপের অন্য প্রান্তটি বন্ধ হয়ে গেছে।
অপেক্ষা করুন $ টিপিপিড
আপনি যদি পুরোপুরি হতে চান তবে আপনি আপনার স্ক্রিপ্টের শুরুতে এবং শেষে নামক পাইপ ফাইলটি তৈরি এবং ধ্বংস করতে পারেন।
রেকর্ডের জন্য, আমি এগুলির বেশিরভাগ এলোমেলো লোকের খুব তথ্যপূর্ণ ব্লগ পোস্ট থেকে সংগ্রহ করেছি : ( সংরক্ষণাগারিত সংস্করণ )