অনেক লোক লাইনে বরাবর কোড যুক্ত ওনেলাইনার এবং স্ক্রিপ্ট ব্যবহার করে
cat "$MYFILE" | command1 | command2 > "$OUTPUT"
প্রথমটিকে cat
প্রায়শই "বিড়ালের অকেজো ব্যবহার" বলা হয় কারণ প্রযুক্তিগতভাবে এটির জন্য একটি নতুন প্রক্রিয়া শুরু করা প্রয়োজন (প্রায়শই /usr/bin/cat
) যেখানে কমান্ডটি থাকলে এটি এড়ানো যেত often
< "$MYFILE" command1 | command2 > "$OUTPUT"
কারণ তখন শেলটি কেবলমাত্র শুরু করা দরকার command1
এবং কেবলমাত্র stdin
প্রদত্ত ফাইলটিতে এটি নির্দেশ করতে হবে।
কেন শেল স্বয়ংক্রিয়ভাবে এই রূপান্তরটি করে না? আমি অনুভব করি যে "বিড়ালের অকেজো ব্যবহার" সিনট্যাক্সটি পড়া সহজ এবং শেলটির অকার্যকর বিড়ালটি স্বয়ংক্রিয়ভাবে মুক্তি পাওয়ার জন্য পর্যাপ্ত তথ্য থাকা উচিত। cat
POSIX মান সংজ্ঞায়িত করা হয়, যাতে শেল পাথ একটি বাইনারি ব্যবহারের অভ্যন্তরীণভাবে এর পরিবর্তে এটি বাস্তবায়ন করার অনুমতি দেওয়া হবে। শেলটি এমনকি কেবলমাত্র একটি যুক্তির সংস্করণ এবং পথে বাইনারি ফ্যালব্যাকের জন্য বাস্তবায়ন ধারণ করতে পারে।
lseek
এখনও সংজ্ঞায়িত আচরণ এবং ভিন্ন পরিণতির কারণ হতে পারে, ভিন্ন ব্লক করা আচরণটি শব্দার্থগতভাবে অর্থবহ হতে পারে ইত্যাদি। যদি আপনি জানতেন যে অন্যান্য আদেশগুলি কী ছিল এবং তারা জানত না যে তারা যত্নশীল নয়, বা যদি আপনি কেবলমাত্র সেই স্তরের সামঞ্জস্যতা সম্পর্কে চিন্তা না করেন তবে সুবিধাটি খুব সামান্য। আমি কল্পনা করি উপকারের অভাব পরিস্থিতি কনফারেন্স ব্যয়ের চেয়ে বেশি চালিত করে।
cat
নিজেকে বা অন্য কোনও ইউটিলিটি বাস্তবায়িত করার অনুমতি দেয় । এটি সিস্টেমের সাথে সম্পর্কিত অন্যান্য ইউটিলিটিগুলি কীভাবে কাজ করে তাও জানার অনুমতি দেওয়া হয়েছে (উদাহরণস্বরূপ এটি জানতে পারে যে সিস্টেমের সাথে আসা বাহ্যিক grep
বাস্তবায়ন কী আচরণ করে)। এটি করা সম্পূর্ণরূপে কার্যকর, তাই তারা কেন তা করবেন না তা অবাক করে দেওয়া সম্পূর্ণ ন্যায্য।
grep
। এবং sed
। এবং awk
। এবং du
। এবং হাজার হাজার অন্যান্য ইউটিলিটি না হলে কত শত?