ধরুন আমি সমান্তরালভাবে একাধিক প্রোগ্রাম সম্পাদন করতে চাই এবং তাদের ফলাফলগুলি একটি পাইপের সাথে একত্রিত করতে চাই:
sh -c '
(echo qqq; echo qqq2; echo qqq3)&
(echo www; echo www2; echo www3)&
(echo eee; echo eee2; echo eee3)&
wait; wait; wait'
এই শেল অ্যাপ্রোচটি এই সাধারণ ক্ষেত্রে ভাল কাজ করে, তবে আমি আশা করি এটি যদি ব্যারফার পদ্ধতিতে আরও বেশি দীর্ঘ লাইনের আউটপুট দেয় তবে এটি ব্যর্থ হবে (নির্মিত):
qqq
qqwww
q2
qqq3www2
wwweee3
eee2
eee3
যে সমাধানগুলির সমাধান সম্পর্কে আমাকে ইঙ্গিত দেওয়া হয়েছিল তার মধ্যে একটি ছিল tail -f:
tail -n +0 -q -f <(echo qqq; echo qqq2; echo qqq3) <(echo www; echo www2; echo www3) <(echo eee; echo eee2; echo eee3)
, তবে এটি উপ-অনুকূল বিকল্প: এটি আস্তে আস্তে আউটপুট দেয়, এটি শেষ হয় না; আমি আউটপুটগুলি "ঘুম" ক্রমে দেখছি না, তবে এই ক্ষেত্রে আর্গুমেন্টের ক্রমে:
tail -n +0 -q -f <(sleep 1; echo qqq; sleep 1; echo qqq2; echo qqq3) <(echo www; echo www2; sleep 10; echo www3) <(echo eee; sleep 4; echo eee2; echo eee3) | cat
আমি এটির জন্য একটি বিশেষ ছোট প্রোগ্রাম বাস্তবায়ন করেছি , তবে বিশ্বাস করি এটি করার কিছু মানক উপায় থাকতে হবে।
মানক সরঞ্জামগুলি (এবং কোনও tail -fঅসুবিধে ছাড়াই ) কীভাবে এটি ব্যবহার করবেন ?
syslog
syslogলগ নয়, কিন্তু কিছু জন্য কাস্টম ঠিক আছে বলে মনে করা?
-sলেজের বিকল্পের জন্য উল্লেখ করা উপযুক্ত হবে। উদাহরণস্বরূপ tail -f -s .1 fileলুপের বিলম্বকে ডিফল্ট 1 সেকেন্ড থেকে .1 সেকেন্ডে হ্রাস করবে।