আমি প্রচুর শেল স্ক্রিপ্ট হ্যাক করেছি এবং কখনও কখনও সিম্পল জিনিস আমাকে অবাক করে দেয়। আজ আমি একটি স্ক্রিপ্ট জুড়ে দৌড়েছি যা :
(কোলন) বাশ বিল্টিনের বিস্তৃত ব্যবহার করেছে ।
Documenation সহজ যথেষ্ট বলে মনে হয়:
: (a colon) : [arguments]
যুক্তিগুলি প্রসারিত করা এবং পুনর্নির্দেশগুলি সম্পাদনের বাইরে কিছু করবেন না। ফেরতের অবস্থা শূন্য।
তবে আমি এর আগে কেবল শেল প্রসারণের বিক্ষোভগুলিতে এটি ব্যবহার করে দেখেছি। আমি যে স্ক্রিপ্টটিতে এসেছি তার ব্যবহারের ক্ষেত্রটি এই কাঠামোর ব্যাপক ব্যবহার করেছে:
if [ -f ${file} ]; then
grep some_string ${file} >> otherfile || :
grep other_string ${file} >> otherfile || :
fi
আসলে শত শত গ্রেপ ছিল, তবে সেগুলি কেবল একই রকম more উপরের সাধারণ কাঠামো ব্যতীত কোনও ইনপুট / আউটপুট পুনর্নির্দেশগুলি উপস্থিত নেই। স্ক্রিপ্টে কোনও ফেরতের মান চেক করা হয় না।
আমি এটি অকেজো কনস্ট্রাক্ট হিসাবে পড়ছি যা "বা কিছুই করবে না" বলে। "বা কিছুই না" দিয়ে এই গ্রেপ্তারগুলি শেষ করার কী উদ্দেশ্য রয়েছে? কোন ক্ষেত্রে এই নির্মাণটি কেবল || :
সমস্ত দৃষ্টিকোণ থেকে সরে যাওয়ার চেয়ে আলাদা ফলাফলের কারণ হতে পারে ?
:
বিকল্প হিসাবে ব্যবহার করাtrue
। সম্ভবতerrexit
সেট করা আছে এবং লেখক কিছু কমান্ডের প্রস্থান স্থিতি সম্পর্কে চিন্তা করে না।