স্ট্যাক এক্সচেঞ্জ এ আপনি যে উত্তরগুলি পেয়েছেন তা সঠিক এবং এই টিউটোরিয়ালটি ভুল। আপনি নিজের দ্বারা পরীক্ষা করতে পারেন বা এটি স্ট্যান্ডার্ডে সন্ধান করতে পারেন । একটি আনসেট IFS
এটিকে স্থান-ট্যাব-নতুন লাইনের ডিফল্ট মান হিসাবে সেট করার সমতুল্য হয়, যখন একটি খালি IFS
কার্যকরভাবে ক্ষেত্র বিভাজন বন্ধ করে দেয়।
Historicalতিহাসিক বাস্তবায়ন সম্পর্কে আপনি আইএফএস-এ সুইভেন মাসচেকের পৃষ্ঠার সাথে পরামর্শ করতে পারেন । কয়েকটি historicalতিহাসিক শেল পছন্দ করেনি unset IFS
, এবং ksh এর একটি অতি পুরানো সংস্করণ এটিকে খালি মনে করেছিল IFS
তবে সমস্ত আধুনিক শেল এবং বেশিরভাগ পুরাতন শাঁসগুলি IFS
ডিফল্ট মানের মতো একটি আনসেটকে বিবেচনা করে ।
আপনি IFS=
যদি ফিল্ড বিভাজন বন্ধ না করতে চান তবে আপনার স্ক্রিপ্টটি শুরু করা উচিত নয় (যা যুক্তিসঙ্গত সিদ্ধান্ত হতে পারে - তবে মনে রাখবেন যে গ্লোব্বিং এড়াতে আপনাকে এখনও বিকল্পগুলির চারপাশে ডাবল কোট লাগানো দরকার, যদি আপনি এটি বন্ধ set -f
না করেন)। ডিফল্ট মানটি পুনরায় সেট করতে, ব্যবহার করুন unset IFS
। এটি কোনও স্ক্রিপ্টের শুরুতে কার্যকর কিনা তা বিতর্কযোগ্য; ডায়গির মতো প্রচুর অন্যান্য খারাপ জিনিস রয়েছে PATH
যা কলকারী আপনার স্ক্রিপ্টটি ভুল করতে করতে পারে।
এই টিউটোরিয়ালটি পুনরায় সেট করার পরামর্শ দেয় PATH
। এটি সাধারণত খারাপ পরামর্শ। বেশিরভাগ ক্ষেত্রে, আপনি সঠিক অনুসন্ধানের পথটি কী তা অনুমান করতে পারবেন না, তবে ব্যবহারকারী জানেন। আপনি কীভাবে জানবেন যে কোনও প্রাচীন ইউনিক্সে যেগুলি বগী রয়েছে সেখানে ইউটিলিটিগুলির বাগ-ফিক্সড সংস্করণ রয়েছে /usr/local/bin
বা /home/bob/bin
রয়েছে /usr/bin
? আপনি কি সব যুক্তি এম্বেড করতে চান তা নির্ধারণ করার জন্য যে /usr/xpg6/bin
সামনে রাখা উচিত /bin
? আপনি কোন পদে চান /usr/gnu/bin
? আপনার স্ক্রিপ্ট কোনও নির্দিষ্ট সিস্টেমকে লক্ষ্য না করা পর্যন্ত PATH পুনরায় সেট করবেন না।
আমি এই টিউটোরিয়ালটি পড়িনি, তবে আমি একটি জিনিস যাচাই করেছি: এটি আপনাকে ভেরিয়েবল বিকল্প এবং কমান্ড বিকল্পের পরিবর্তে সর্বদা ডাবল উদ্ধৃতি প্রদানের শুরু থেকেই বলে না tell সুতরাং আমি এই টিউটোরিয়ালটি ভাল বলে মনে করি না।
unset IFS
ফিল্ড-বিভাজন পুনরায় সেট করা সত্ত্বেও ব্যাশে আইএফএস তার ডিফল্ট মানটিতে রিসেট করে না।