উল্লিখিত glob / বিভক্ত
আমি প্রথমে গ্লোব / স্প্লিট নেব। @ স্টিফেনের যে উত্তর আপনি যুক্ত করেছেন সেগুলি এই শব্দগুলি সাধারণ অর্থে ব্যবহার করছে। এগুলি প্রকৃত আদেশ বা এ জাতীয় কিছু নয়, কেবল ছদ্ম অপারেশন।
split("$test")
উপাদানের একটি "অ্যারে" মধ্যে "$ পরীক্ষা" আপ বিষয়বস্তু বিভক্ত হবে।
glob(...)
তবে এই উপাদান আছে যা যেমন শেল globbing অক্ষর কোন প্রসারিত করতে যত্ন নিতে হবে *
বা ব্যাপ্তির [1-2]
।
উদাহরণ
আমাদের স্ট্রিং $test
নিম্নলিখিত হিসাবে বলুন ।
$ test="afile[1-2] afile[3-5]"
এছাড়াও বলি যে আমাদের কিছু ডিরেক্টরি সহ একটি ডিরেক্টরি আছে।
$ ls -1
afile1
afile2
afile3
afile4
afile5
এখন যদি আমরা এটিকে উদ্ধৃতি না দিয়ে প্রতিধ্বনিত করার চেষ্টা করি তবে আপনার লক্ষ্য করা উচিত যে আমাদের স্ট্রিং স্পেসে বিভক্ত হয়ে গেছে এবং তারপরে কোনও গ্লোববিং অক্ষর প্রসারিত হয়েছে।
$ echo $test
afile1 afile2 afile3 afile4 afile5
তবে আমরা যদি ভেরিয়েবলটি উদ্ধৃত করি যখন আমরা এটির আর্গুমেন্ট হিসাবে পাস করি যখন আমরা echo
আসল আক্ষরিক স্ট্রিংটি পেতে পারি।
$ echo "$test"
afile[1-2] afile[3-5]
পরিবর্তনশীল সম্প্রসারণ
ভেরিয়েবল এক্সপেনশন শব্দটি শেলটি এর মৌলিক ক্রিয়াকলাপের অংশ হিসাবে যে মৌলিক ক্রিয়াকলাপটি সম্পাদন করে তা আবৃত করে। শেলটি ইনপুট পার্সিংয়ের জন্য দায়ী এবং তারপরে এই ইনপুটটিকে সিন্টেক্সিকভাবে সঠিক হিসাবে গণ্য করা হয়েছে।
আমাদের আগের উদাহরণে। ভেরিয়েবলটি যখন অব্যর্থতার সাথে $test
উপস্থাপন করা হয়েছিল তখন echo
আমরা শেলকে বলছিলাম যে এগিয়ে যেতে হবে এবং সেই যুক্তিগুলি ভাগ করে নিন এবং তারপরে সেগুলি গ্লোব করুন।
যখন এটি উদ্ধৃত হয়েছিল, আমরা মূলত সেই বৈশিষ্ট্যটি অক্ষম করছিলাম যা কখনও পরিবর্তনশীল (গুলি) দ্বিগুণ উদ্ধৃতি দিয়ে মুড়ে ফেলেছিলাম।
উদাহরণ
গ্লোব্বিং এবং বিভাজনের কয়েকটি অতিরিক্ত উদাহরণ এখানে।
গ্লোব / বিভাজন স্বয়ংক্রিয়ভাবে ঘটে
$ echo file{1..3}
file1 file2 file3
$ echo file{1..3} dir{a..b}
file1 file2 file3 dira dirb
$ echo dir{z..w} file{A..D}
dirz diry dirx dirw fileA fileB fileC fileD
$ echo dir{z..w} file{A..B} fileC
dirz diry dirx dirw fileA fileB fileC
গ্লোব / বিভাজন ডাবল উদ্ধৃতি মাধ্যমে অক্ষম
$ echo "dir{z..w} file{A..B} fileC"
dir{z..w} file{A..B} fileC
$ echo "dir{z..w} file{A..B}"
dir{z..w} file{A..B}