যেমনটি অন্যরা লক্ষ্য করেছেন, "-n" আক্ষরিক অর্থে ব্যাখ্যা করা হয় যদি কোথাও স্থাপন করা হয় তবে echo
কমান্ডের সাথে সাথেই ।
.তিহাসিকভাবে, ইউএনআইএক্স ইউটিলিটিগুলি এ জাতীয় ছিল - তারা কেবল কমান্ডের নামের পরে বিকল্পগুলি সন্ধান করেছিল। সম্ভবত বিএসডি বা জিএনইউ যিনি আরও নমনীয় শৈলীর পথনির্দেশ করেছিলেন (যদিও আমি ভুল হতে পারি), যেমন এখনও পসিএক্স পুরানো পথটিকে সঠিক হিসাবে নির্দিষ্ট করেছে (গাইডলাইন 9 দেখুন এবং man 3 getopt
লিনাক্স সিস্টেমেও দেখুন)। যাইহোক, যদিও বর্তমানে বেশিরভাগ লিনাক্স ইউটিলিটিগুলি নতুন স্টাইলটি ব্যবহার করে, তেমন কিছু হোল্ডআউট রয়েছে echo
।
Echo
মানদণ্ড অনুসারে একটি জগাখিচুড়ি, যে সময়ে পসিক্সের সূচনা হওয়ার সময় অন্তত দুটি মৌলিক বিরোধী সংস্করণ ছিল play একদিকে, আপনার কাছে এসওয়াইএসভি-স্টাইল রয়েছে, যা ব্যাকস্ল্যাশ-পলায়নযুক্ত অক্ষরের ব্যাখ্যা দেয় তবে অন্যথায় কোনও বিকল্প গ্রহণ না করে এর যুক্তিগুলিকে আক্ষরিক অর্থে আচরণ করে। অন্যদিকে, আপনার কাছে বিএসডি-স্টাইল রয়েছে, যা প্রাথমিককে -n
একটি বিশেষ কেস হিসাবে বিবেচনা করে এবং অন্য সব কিছুকে আক্ষরিক অর্পণ করে। এবং যেহেতু echo
খুব সুবিধাজনক, আপনার কাছে হাজার হাজার শেল স্ক্রিপ্ট রয়েছে যা একটি আচরণ বা অন্যটির উপর নির্ভর করে:
echo Usage: my_awesome_script '[-a]' '[-b]' '[-c]' '[-n]'
echo -a does a thing.
echo -b does something else.
echo -c makes sure -a works right.
echo -- DON\'T USE -n -- it\'s not finished! --
"শব্দের সাথে আক্ষরিক অর্থে আচরণ করুন" অর্থাতৃত্বের কারণে, echo
জিনিসগুলি না ভাঙিয়ে এমনকি একটি নতুন বিকল্প যুক্ত করাও অসম্ভব । জিএনইউ যদি এতে নমনীয় বিকল্পগুলি স্কিম ব্যবহার করে তবে নরকটি শিথিল হয়ে যাবে।
ঘটনাচক্রে, বোর্ন শেল বাস্তবায়নগুলির মধ্যে সেরা সামঞ্জস্যের পরিবর্তে ব্যবহার করুনprintf
echo
।
echo
বিশেষত কেন নমনীয় বিকল্পগুলি ব্যবহার করে না তা ব্যাখ্যা করার জন্য আপডেট করা ।
echo -n "bar"
, "বার" দেয় যখনecho "bar" -n
দেয় "বার -n"