কম্পিউটার টিউটোরিয়াল

শেল স্ক্রিপ্টিং-এ বেসিক অপারেটর


শেল হলো একটি ইন্টারফেস যার মাধ্যমে প্রোগ্রামার কমান্ড এক্সিকিউট করতে পারেন এবং অপারেটিং সিস্টেমের সাথে সরাসরি ইন্টারঅ্যাক্ট করতে পারেন। শেল স্ক্রিপ্টিং হলো শেল যা কমান্ড এক্সিকিউট করতে পারে সেসব কমান্ড দেওয়া।

শেল-ও ভেরিয়েবল এবং অপারেটর রয়েছে যেগুলো এই ভেরিয়েবলগুলো ম্যানিপুলেট করতে ব্যবহৃত হয়। শেল স্ক্রিপ্টিং-এ ৫টি বেসিক অপারেটর রয়েছে।

  • অ্যারিথমেটিক অপারেটর
  • রিলেশনাল অপারেটর
  • বুলিয়ান অপারেটর
  • বিটওয়াইজ অপারেটর
  • ফাইল টেস্ট অপারেটর

অ্যারিথমেটিক অপারেটর

শেল স্ক্রিপ্টিং-এ অ্যারিথমেটিক অপারেটর সাধারণ গাণিতিক অপারেশন করার জন্য ব্যবহৃত হয়। শেল স্ক্রিপ্টিং-এ ৭টি বৈধ অ্যারিথমেটিক অপারেটর রয়েছে −

  • যোগ (+) দুটি অপারেন্ড (ভেরিয়েবল) যোগ করতে ব্যবহৃত হয়।

  • বিয়োগ (-) দুটি ভেরিয়েবল (অপারেন্ড) বিয়োগ করতে ব্যবহৃত হয়।

  • গুণ (*) দুটি ভেরিয়েবল (অপারেন্ড) গুণ করতে ব্যবহৃত হয়।

  • ভাগ (/) দুটি ভেরিয়েবল (অপারেন্ড) ভাগ করতে ব্যবহৃত হয়।

  • মডুলাস (%) অপারেন্ড ভাগ করার রিমেইন্ডার বের করতে ব্যবহৃত হয়।

  • ইনক্রিমেন্ট অপারেটর (++) অপারেটরের কারেন্ট ভ্যালুতে ১ যোগ করতে ব্যবহৃত হয়।

  • ডিক্রিমেন্ট অপারেটর (--) অপারেটরের কারেন্ট ভ্যালু থেকে ১ বিয়োগ করতে ব্যবহৃত হয়।

উদাহরণ

শেল স্ক্রিপ্টিং-এ অ্যারিথমেটিক অপারেটর বাস্তবায়ন দেখানো হলো −

a = 32 
b = 23 
add = $((a + b)) 
echo sum of a and b is $add 
sub = $((a - b)) 
echo Subtraction of a and b is $sub 
mul = $((a * b)) 
echo product of a and b is $mul 
div = $((a / b)) 
echo division of a and b is $div 
mod = $((a % b)) 
echo remainder when a is divided b is $mod 
((++a)) 
echo Increment operator when applied on "a" results into a = $a 
((--b)) 
echo Decrement operator when applied on "b" results into b = $b

আউটপুট

sum of a and b is 55 
Subtraction of a and b is 9 
product of a and b is 736 
division of a and b is 1 
remainder when a is divided b is 9 
Increment operator when applied on a results into a = 33 
Decrement operator when applied on b results into b = 24

রিলেশনাল অপারেটর

শেল স্ক্রিপ্টিং-এ রিলেশনাল অপারেটর অপারেন্ডগুলোর মধ্যে সম্পর্ক ডিফাইন করে। এই গুলোর রিটার্ন ভ্যালু অপারেটর এবং অপারেন্ডের উপর নির্ভর করে true বা false হয়। শেল স্ক্রিপ্টিং-এ ৬টি বৈধ রিলেশনাল অপারেটর রয়েছে −

  • == অপারেটর দুটি অপারেটরের ভ্যালু ইকুয়েট করে। ভ্যালু সমান হলে true রিটার্ন করে অন্যথায় false।

  • != অপারেটর দুটি অপারেটরের ভ্যালু ইকুয়েট করে এবং তাদের অসমতা চেক করে। ভ্যালু সমান না হলে true রিটার্ন করে অন্যথায় false।

  • < অপারেটর লেস দান অপারেটর দুটি অপারেটরের ভ্যালু কমপেয়ার করে। যদি ফার্স্ট অপারেন্ডের ভ্যালু সেকেন্ডের চেয়ে ছোট হয় তবে true রিটার্ন করে অন্যথায় false।

  • <= অপারেটর লেস দান অর ইকুয়াল টু অপারেটর দুটি অপারেটরের ভ্যালু কমপেয়ার করে। ফার্স্ট অপারেন্ডের ভ্যালু সেকেন্ডের চেয়ে ছোট বা সমান হলে true রিটার্ন করে অন্যথায় false।

  • > অপারেটর গ্রেটার দান অপারেটর দুটি অপারেটরের ভ্যালু কমপেয়ার করে। ফার্স্ট অপারেন্ডের ভ্যালু সেকেন্ডের চেয়ে বড় হলে true রিটার্ন করে অন্যথায় false।

  • >= অপারেটর গ্রেটার দান অর ইকুয়াল টু অপারেটর দুটি অপারেটরের ভ্যালু কমপেয়ার করে। ফার্স্ট অপারেন্ডের ভ্যালু সেকেন্ডের চেয়ে বড় বা সমান হলে true রিটার্ন করে অন্যথায় false।

উদাহরণ

a = 32 
b = 67 
if(( $a==$b )) 
then 
    echo a is equal to b. 
else 
    echo a is not equal to b. 
fi 
if(( $a!=$b )) 
then 
    echo a is not equal to b. 
else 
    echo a is equal to b. 
fi 
if(( $a<$b )) 
then 
    echo a is less than b. 
else 
    echo a is not less than b. 
fi 
if(( $a<=$b )) 
then 
    echo a is less than or equal to b. 
else 
    echo a is not less than or equal to b. 
fi 
if(( $a>$b )) 
then 
    echo a is greater than b. 
else 
    echo a is not greater than b. 
fi 
if(( $a>=$b )) 
then 
    echo a is greater than or equal to b. 
else 
    echo a is not greater than or equal to b. 
fi

আউটপুট

a is not equal to b. 
a is not equal to b. 
a is less than b. 
a is less than or equal to b. 
a is not greater than b. 
a is not greater than or equal to b.

বুলিয়ান অপারেটর

বুলিয়ান অপারেটর যাকে লজিক্যাল অপারেটরও বলা হয়, শেল স্ক্রিপ্টিং-এ লজিক্যাল অপারেশন করার জন্য ব্যবহৃত হয়। শেল স্ক্রিপ্টিং-এ ৩টি বৈধ লজিক্যাল অপারেটর রয়েছে −

  • লজিক্যাল AND (&&) বুলিয়ান ভ্যালুর লজিক্যাল AND ক্যালকুলেট করে। দুটি অপারেন্ড true হলে true রিটার্ন করে অন্যথায় false।

  • লজিক্যাল OR (||) বুলিয়ান অপারেন্ডের লজিক্যাল OR অপারেশন ক্যালকুলেট করে। দুটি অপারেন্ড false হলে false রিটার্ন করে অন্যথায় true।

  • লজিক্যাল Not Equal to (!) পাস করা একক অপারেন্ডের নেগেশন ক্যালকুলেট করে। অপারেন্ডের ভ্যালু true হলে false রিটার্ন করে অন্যথায় true।

উদাহরণ

a = true 
b = false 
if(($a == "true" & $b == "true" )) 
then 
    echo Both are true. 
else 
    echo Both are not true. 
fi 
if(($a == "true" || $b == "true" )) 
then 
    echo Atleast one of them is true. 
else 
    echo None of them is true. 
fi 
if(( ! $a == "true" )) 
then 
    echo "a" was intially false. 
else 
    echo "a" was intially true. 
fi

আউটপুট

Both are not true. 
Atleast one of them is true 
a was intially true.

বিটওয়াইজ অপারেটর হলো বিট ভেরিয়েবলের ওপর বিটওয়াইজ অপারেশন করার অপারেটর। শেল স্ক্রিপ্টিং-এ ৬টি বিটওয়াইজ অপারেটর রয়েছে −

  • বিটওয়াইজ AND (&) অপারেন্ডের বিটগুলোর ওপর বাইনারি AND অপারেশন করে অর্থাৎ ফার্স্ট ভেরিয়েবল-এর প্রতিটি বিট সেকেন্ড অপারেটর-এর রেসপেক্টিভ বিটের সাথে অপারেট হয়।

  • বিটওয়াইজ OR (|) অপারেন্ডের বিটগুলোর ওপর বাইনারি OR অপারেশন করে।

  • বিটওয়াইজ XOR (^) অপারেন্ডের বিটগুলোর ওপর বাইনারি XOR অপারেশন করে।

  • বিটওয়াইজ কমপ্লিমেন্ট (~) অপারেন্ডের বিটগুলোর ওপর বাইনারি NOT অপারেশন করে।

  • বিটওয়াইজ লেফট শিফট (<<) অপারেন্ডের বিটগুলোর বামে n টাইম শিফট করে (অপারেটরের ডানে নির্দিষ্ট)।

  • বিটওয়াইজ রাইট শিফট (>>) অপারেন্ডের বিটগুলোর ডানে n টাইম শিফট করে।

উদাহরণ

a = 14 
b = 67 
bitwiseAND=$(( a&b )) 
echo Bitwise AND of a and b is $bitwiseAND 
bitwiseOR=$(( a|b )) 
echo Bitwise OR of a and b is $bitwiseOR 
bitwiseXOR=$(( a^b )) 
echo Bitwise XOR of a and b is $bitwiseXOR 
bitiwiseComplement=$(( ~a )) 
echo Bitwise Compliment of a is $bitiwiseComplement 
leftshift=$(( a<<1 )) 
echo Left Shift of a is $leftshift 
rightshift=$(( b>>1 )) 
echo Right Shift of b is $rightshift

আউটপুট

Bitwise AND of a and b is 2 
Bitwise OR of a and b is 79 
Bitwise XOR of a and b is 77 
Bitwise Compliment of a is -15 
Left Shift of a is 28 
Right Shift of b is 33

ফাইল টেস্ট অপারেটর

ফাইল টেস্ট অপারেটরগুলো ফাইলের নির্দিষ্ট প্রোপার্টি টেস্ট করতে ব্যবহৃত হয়। কিছু ফাইল টেস্ট অপারেটর:

  • -b অপারেটর চেক করে নির্দিষ্ট ফাইল ব্লক স্পেশাল ফাইল কিনা। যদি ব্লক স্পেশাল ফাইল হয় তবে true রিটার্ন করে অন্যথায় false।

  • -s অপারেটর দেয়া ফাইলের সাইজ চেক করে। ফাইল সাইজ ০-এর চেয়ে বড় হলে true রিটার্ন করে অন্যথায় false।

  • -r অপারেটর চেক করে ফাইল কন্টেন্ট রিড অ্যাক্সেস দেওয়া আছে কিনা। রিড অ্যাক্সেস থাকলে true রিটার্ন করে অন্যথায় false।

  • -w অপারেটর চেক করে ফাইলে রাইট অ্যাক্সেস আছে কিনা। রাইট অ্যাক্সেস থাকলে true রিটার্ন করে অন্যথায় false।

  • -x অপারেটর চেক করে ফাইল এক্সিকিউট অ্যাক্সেস আছে কিনা। এক্সিকিউশন অ্যাক্সেস থাকলে true রিটার্ন করে অন্যথায় false।


  1. জাভাস্ক্রিপ্ট বিটওয়াইজ অপারেটরগুলো কী কী?

  2. জাভাস্ক্রিপ্টে রেস্ট এবং স্প্রেড অপারেটর

  3. শেল স্ক্রিপ্টিং-এ Heredoc মাস্টার করুন: একটি প্র্যাকটিক্যাল গাইড

  4. লিনাক্স শেল বেসিক্স মাস্টার করুন: নতুনদের স্ক্রিপ্টিং-র জন্য ضروری টিপস