আমি বাশ স্ক্রিপ্টে একটি লাইন পাইপ করেছি এবং কোনও প্রোগ্রামে খাওয়ানোর আগে পাইপটিতে ডেটা আছে কিনা তা পরীক্ষা করতে চাই।
অনুসন্ধান করে আমি প্রায় খুঁজে পেয়েছি test -t 0
কিন্তু এটি এখানে কাজ করে না। সর্বদা মিথ্যা প্রত্যাবর্তন। তাহলে কীভাবে নিশ্চিত হবেন যে পাইপের ডেটা রয়েছে?
উদাহরণ:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
আউটপুট: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
আউটপুট: fill
পূর্বোক্ত পাইপলাইন উত্পাদিত আউটপুট কিনা তা পরীক্ষা করার স্ট্যান্ডার্ড / ক্যানোনিকাল পদ্ধতি থেকে ভিন্ন ? প্রোগ্রামটিতে পাস করার জন্য ইনপুটটি সংরক্ষণ করা দরকার। এটি জেনারেলাইজ করে কিভাবে এক প্রক্রিয়া থেকে অন্য প্রক্রিয়াতে আউটপুট পাইপ করা যায় তবে প্রথমটির আউটপুট থাকে তবে কেবল কার্যকর করা যায়? যা ইমেল প্রেরণের উপর দৃষ্টি নিবদ্ধ করে।