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

ব্যাশ কন্ডিশনাল লজিক মাস্টার করুন: if…else স্টেটমেন্ট ব্যবহার করুন

ব্যাশ স্ক্রিপ্টিং লিনাক্সে টাস্ক অটোমেট করার জন্য ডেভেলপারদের একটি حیاتی টুল।

ব্যাশ স্ক্রিপ্ট ব্যবহার করা যায় ডেভেলপমেন্ট টাস্ক লোকালি অটোমেট করার জন্য (যেমন ডিপ্লয়মেন্টের জন্য ফাইল আপলোড করা, অ্যাপ কম্পাইল করা, বা বাল্কে ইমেজ রিসাইজ করা), সেইসাথে সার্ভার-সাইড টাস্কের জন্যও (শিডিউল্ড ইমেইল পাঠানো, ইন্টারভালে ডেটা কালেক্ট করা, বা ডিভাইসে নোটিফিকেশন পাঠানো)।

আপনি চাইবেন কিছু টাস্ক অন্য টাস্ক বা ভেরিয়েবলের ফলাফলের উপর নির্ভর করে চলে, এবং সেটিই if … else আপনাকে সাহায্য করবে। ব্যাশ স্ক্রিপ্টে এই সিদ্ধান্ত গ্রহণের প্রসেসকে কন্ডিশনাল ব্যবহার বলা হয়।

এই টিউটোরিয়ালে ব্যাশে if… else স্টেটমেন্টের ডিটেইলস এবং উদাহরণ ব্যবহার দেওয়া হবে।

if স্টেটমেন্ট ব্যবহার করা

একটি সিম্পল if স্টেটমেন্ট শর্ত সত্য হলে তার ভিতরের অ্যাকশন এক্সিকিউট করে, এবং নিচের মতো দেখে:

if CONDITIONS; then ACTIONS fi

একটি পূর্ণ উদাহরণ:

#!/bin/bash if [ 2 -lt 3 ]; then echo "2 is less than 3!" fi

লক্ষ্য করুন:

  • সব ব্যাশ স্ক্রিপ্ট #!/bin/bash লাইন দিয়ে শুরু হয়
  • -lt অপারেটর চেক করে প্রথম ভ্যালু দ্বিতীয় থেকে ছোট কিনা। যদি দ্বিতীয়টি প্রথম থেকে বড় কিনা চেক করতে চান, তবে -gt ব্যবহার করুন
  • আরও লজিক্যাল অপারেটরের জন্য পড়তে থাকুন।
  • কমান্ড লাইনে টেক্সট আউটপুট করার জন্য echo কমান্ড ব্যবহার করা হয়েছে
  • if স্টেটমেন্ট সবসময় fi দিয়ে শেষ হয়

else স্টেটমেন্ট ব্যবহার করা

আপনি যদি শর্তের ওপর ভিত্তি করে একটি অ্যাকশন করতে চান, এবং শর্ত মিথ্যা হলে শুধু একটি ভিন্ন অ্যাকশন করতে চান, তবে else স্টেটমেন্ট ব্যবহার করুন:

#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" else echo "$number is not less than 3!" fi

লক্ষ্য করুন:

  • উপরের মতোই ভ্যালু কমপেয়ার এবং টেক্সট আউটপুটের জন্য একই এলিমেন্ট ব্যবহার করা হয়েছে
  • ইউজার ইনপুট নেওয়ার জন্য read কমান্ড ব্যবহার করা হয়েছে
  • পরে ব্যবহার করার জন্য একটি ভেরিয়েবলে ভ্যালু স্টোর করা হয়েছে

elif (Else If) স্টেটমেন্ট ব্যবহার করা

একাধিক শর্ত সেট চেক করে এবং প্রতিটি সত্য হলে ভিন্ন অ্যাকশন করতে elif (else if) স্টেটমেন্ট ব্যবহার করুন:

#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" elif [ $number -eq 3]; then echo "$number is equal to 3!" else echo "$number is not less than 3!" fi

if স্টেটমেন্টে একাধিক শর্ত

আপনার একাধিক শর্ত চেক করতে হলে, && (AND) এবং || (OR) অপারেটর ব্যবহার করুন যাতে অ্যাকশন করা উচিত কিনা তা নির্ধারণ করা যায়:

#!/bin/bash echo -n "Enter number: " read number if [[ $number -lt 3 ]] && [[ $number -lt 0 ]]; then echo "$number is less than three and is negative" elif [[ $number -lt 3 ]] || [[ $number -gt 6 ]]; then echo "$number is not negative, but is less than 3 or greater than 6" else echo "$number is greater than3 and less than 6" fi

স্টেটমেন্ট নেস্টিং

আপনি if স্টেটমেন্টের ভিতর if স্টেটমেন্ট রাখতে পারেন:

#!/bin/bash echo -n "Enter number: " read number if [$number -gt 3]; then echo "$number is greater than 3" if [$number -gt 6]; then echo "$number is also greater than 6" else echo "$number is not also greater than 6" fi fi

কমপैरিজন অপারেটর

উপরের উদাহরণগুলোতে আমরা -lt (less than), -gt (greater than), এবং = (equals) অপারেটর ব্যবহার করেছি। এখানে কিছু অন্যান্য সাধারণ লজিক্যাল অপারেটর:

নাম্বার কমপেয়ার করা

$number1 -eq $number2 : Returns true if the variables are equal $number1 -gt $number2 : Returns true if $number1 is greater than $number2 $number1 -ge $number2 : Returns true if $number1 is equal to or greater than $number2 $number1 -lt $number2 : Returns true if $number1 is less than $number2 $number1 -le $number2 : Returns true if $number1 is equal to or less than $number2 

স্ট্রিং কমপেয়ার করা

$string1 = $string2 : Returns true if $string1 and $string2 are equal $string1 != $string2 : Returns true if $string1 and $string2 are not equal 

উপরে দেখানো মত, কমপैरিজন এক্সপ্রেশনের ফলাফল উল্টা করতে ! (NOT) অপারেটর সামনে দিন, উদাহরণস্বরূপ, *!= মানে NOT EQUALS।

স্ট্রিং কমপেয়ার করার সময় সবসময় ডবল কোটেশন মার্কে র‍্যাপ করুন যাতে স্পেসগুলো আপনার ব্যাশ স্ক্রিপ্ট দ্বারা মিসইন্টারপ্রেট না হয়।

স্ট্রিং ধারণকারী ভেরিয়েবলগুলোকেও কোটেশন মার্কে র‍্যাপ করুন যাতে সেগুলো মিসইন্টারপ্রেট না হয়:

#!/bin/bash echo -n "Enter string: " read string if ["$string" = "hello there!"] echo "You said hello there!" fi

ফাইল বা ডিরেক্টরির স্ট্যাটাস চেক করা

-d $filepath : Returns true if the $filepath exists and is a directory -e $filepath : Returns true if the $filepath exists regardless of whether it's a file or directory -f $filepath : Returns true if the $filepath exists and is a file -h $filepath : Returns true if the $filepath exists and is a symbolic link -r $filepath : Returns true if the $filepath exists and is readable -w $filepath : Returns true if the $filepath exists and is writable -x $filepath : Returns true if the $filepath exists and is executable 

উপসংহার

নিজস্ব ব্যাশ স্ক্রিপ্ট তৈরি করা আপনার অसीম সময় বাঁচাতে পারে, এবং বেসিক বিল্ডিং ব্লক জানলে লিখা খুব সহজ।

if… else স্টেটমেন্ট আপনাকে কন্ট্রোল দেয় যে আপনার স্ক্রিপ্ট ইউজার ইনপুট বা ফাইল স্ট্যাটাসে কীভাবে প্রতিক্রিয়া জানাবে।

আমাদের অন্যান্য ব্যাশ আর্টিকেল চেক করুন আরও শিখতে!

  1. রুবির `select` মেথড মাস্টার করুন: প্র্যাক্টিক্যাল উদাহরণ ও ব্যবহার গাইড

  2. রুবির grep মেথড মাস্টারিং: কোড উদাহরণসহ একটি ব্যবহারিক গাইড

  3. Linux Watch কমান্ড 습득: সিনট্যাক্স, অপশন এবং প্রয়োগিক উদাহরণ

  4. এক্সেল VBA-তে টেবিল রেফারেন্সিং মास্টার করুন - ২০টি প্রমাণিত কৌশল