আমরা পূর্বে Bash-এ ভেরিয়েবল ব্যবহার নিয়ে আলোচনা করেছি – এই আর্টিকেলটি Bash অ্যারে ভেরিয়েবল ব্যাখ্যা করবে এবং কিছু উদাহরণ দেবে।
অ্যারে কী?
অ্যারে একটি ভেরিয়েবলের ধরন যা একাধিক মান ধারণ করতে পারে। এটি মানগুলোর একটি তালিকা যা আপনি লুপ করে প্রতিটি মান পূরণ করতে পারেন।
উদাহরণস্বরূপ, আপনি ফাইলগুলির একটি তালিকার ওপর একটি অ্যাকশন নিতে চাইতে পারেন। সেই তালিকাটিকে অ্যারে হিসেবে সংরক্ষণ করে, আপনি সেখানে থাকা ফাইল নামগুলোর মধ্য দিয়ে লুপ করতে পারেন এবং প্রতিটি ওপর অ্যাকশন নিতে পারেন।
অ্যারে ইনডেক্সড, যেখানে অ্যারেতে প্রতিটি আইটেমের অবস্থান একটি সংখ্যা দ্বারা প্রতিনিধিত্ব করা হয় যা ০ থেকে শুরু হয়।
Bash অ্যারে যেন অ্যারে এলিমেন্টগুলি contiguously বা tanpa গ্যাপের পাশাপাশি ইনডেক্সড হোক তা আবশ্যক নয় – আপনি অ্যারে পজিশন ০, ৩, ১৭-এ মান রাখতে পারেন بينهما কোনো মান ছাড়াই।
আপনি লিনাক্স ডকুমেন্টেশন প্রজেক্টে Bash অ্যারে সম্পর্কে আরও জানতে পারেন।
Bash অ্যারে তৈরি করা
Bash অ্যারে যেকোনো ধরনের bash ভেরিয়েবল ধারণ করতে পারে – পাথ, স্ট্রিং, নম্বর – এমনকি অন্যান্য অ্যারেটাও।
শেল স্ক্রিপ্টে ফাইল পাথ স্ট্রিং-এ র্যাপ করার কারণ
অ্যারে ঘোষণার জন্য অনেক পদ্ধতি আছে, নিচে আলোচনা করা হলো:
ইনডায়রেক্ট ডিক্লেরেশন
অ্যারে ইনডায়রেক্টলি ঘোষণা করা যায় অ্যারে এলিমেন্টের মান অ্যাসাইন করে – অ্যারেটি প্রদত্ত মান সহ অ্যারে এলিমেন্ট के সাথে স্বয়ংক্রিয়ভাবে তৈরি হয়।
ARRAYNAME[INDEX]=VALUE
উদাহরণ:
#!/bin/bash peopleArray[3]="Tom"
peopleArray অ্যারেটি স্বয়ংক্রিয়ভাবে (ইনডায়রেক্টলি) তৈরি হয়বে যখন অ্যারেতে কোনো মান অ্যাসাইন করা হবে – এই ক্ষেত্রে, "Tom" মান নতুন তৈরি peopleArray-এর ইনডেক্স ৩-এ অ্যাসাইন করা হয়েছে।
ডায়রেক্ট ডিক্লেরেশন
declare কমান্ডও অ্যারে ডিফাইন করতে ব্যবহার করা যায়:
declare -a ARRAYNAME
উদাহরণ:
declare -a peopleArray
এটি peopleArray নামে একটি খালি অ্যারে তৈরি করবে।
কামপাউন্ড অ্যাসাইনমেন্ট দিয়ে তৈরি করা
এটি সম্ভবত আপনি সবচেয়ে বেশি ব্যবহার করবেন। এটি পূর্বে অ্যাসাইন করা মান সহ অ্যারে তৈরি করে।
ARRAYNAME=(value1 value2 ...)
এটি অ্যারের মান ভেরিয়েবল নামের সাথে অ্যাসাইন করে। অ্যারে মানগুলো () (স্ট্যান্ডার্ড ব্র্যাকেট) এর ভিতরে থাকে এবং স্পেস দিয়ে আলাদা করা হয়। স্পেস বিশিষ্ট মানগুলো কোটেশন মার্কের মধ্যে রাখতে হয়।
উদাহরণ:
peopleArray=("Tom", "Bill", "Theodore Baker Sr.")
অ্যারেতে মান অ্যাসাইন করা
অ্যারোর শেষে নতুন মান যোগ করা
অ্যারেতে মান যোগ করতে, কোনো ইনডেক্স নির্দিষ্ট না করে মান অ্যাসাইন করুন:
ARRAYNAME[]=VALUE
উদাহরণ:
peopleArray[]="Tony"
অ্যারেতে মান রিপ্লেস করা
একটি মান রিপ্লেস করতে, বর্তমান মানের ইনডেক্সে নতুন মান লিখুন।
উদাহরণস্বরূপ, আপনার একটি অ্যারে আছে যার ইনডেক্স ৭-এ একটি মান আছে যা আপনি রিপ্লেস করতে চান:
peopleArray[7]="Tony"
অ্যারেতে মান ডিলিট করা
unset কমান্ড ব্যবহার করে অ্যারের ইনডেক্স নির্দিষ্ট করে অ্যারে থেকে মান ডিলিট করুন:
unset ARRAYNAME[INDEX]
উদাহরণ:
unset peopleArray[1]
…এটি peopleArray অ্যারেতে দ্বিতীয় মানটি ডিলিট করবে।
অ্যারে মান অ্যাক্সেস করা
অ্যারেতে মান অ্যাক্সেস করতে, আপনাকে অবশ্যই কার্লি ব্রেস ব্যবহার করতে হবে – অন্যথায়, Bash ব্র্যাকেটে থাকা অ্যারে ইনডেক্সটি সঠিকভাবে ইন্টারপ্রেট করবে না:
echo ${ARRAYNAME[INDEX]}
উদাহরণ:
#!/bin/bash
peopleArray=("Tom", "Bill", "Theodore Baker Sr.")
echo ${peopleArray[0]}
…এটি আউটপুট দেবে:
Tom
যদি শেষ লাইনটি হয়:
echo $peopleArray[0]
অ্যারে লুপ করা
অ্যারের সাথে আপনি যা সবচেয়ে বেশি করবেন তা হলো সেগুলোর মধ্য দিয়ে লুপ করা প্রতিটি এলিমেন্টে অপারেশন করার জন্য। আমরা এর আগে এই বিষয়ে আলোচনা করেছি।