ব্যাশ কেস স্টেটমেন্ট কিভাবে ব্যবহার করবেন

How Use Bash Case Statement



ব্যাশ কেস স্টেটমেন্টগুলি if-else স্টেটমেন্টের অনুরূপ কিন্তু সহজ এবং সরল। এটি একটি ভেরিয়েবলের সাথে বিভিন্ন মানের সাথে মিলতে সাহায্য করে। এটি ব্যবহার করা হয় যখন আপনার অনেক এলিফ স্টেটমেন্টের সাথে IF- অন্য স্টেটমেন্টের প্রয়োজন হয় ... এটি সি-তে স্টেচমেন্ট স্টেটমেন্টের অনুরূপ কিন্তু প্যাটার্ন মিলে গেলে ব্যাশ কেস স্টেটমেন্ট এগিয়ে যায় না

এই নিবন্ধে, আমরা ব্যাখ্যা করব কিভাবে লিনাক্স অপারেটিং সিস্টেমে ব্যাশ কেস স্টেটমেন্ট ব্যবহার করতে হয়।







ব্যাশ কেস স্টেটমেন্টের সিনট্যাক্স

এখানে ব্যাশ কেস স্টেটমেন্টের সিনট্যাক্স:



বাক্য গঠন:



কেস $ পরিবর্তনশীল ভিতরে
প্যাটার্ন-)
কমান্ড
;;
প্যাটার্ন-2)
কমান্ড
;;
প্যাটার্ন-3)
কমান্ড
;;
প্যাটার্ন-এন)
কমান্ড
;;
*)
কমান্ড
;;
esac
  • কেস স্টেটমেন্ট কেস দিয়ে শুরু হয় এবং এসাক দিয়ে শেষ হয়
  • একটি প্যাটার্ন শেষ করার জন্য ব্যবহার করা হয়। একাধিক নিদর্শন পৃথক করতে, | অপারেটরটি নীচে দেখানো হয়েছে:
কেস $ পরিবর্তনশীল ভিতরে
প্যাটার্ন-|প্যাটার্ন-2)
কমান্ড
....
....
;;
প্যাটার্ন-3|প্যাটার্ন-4)
কমান্ড
....
....
;;
  • কমান্ড সহ প্যাটার্ন ক্লজ হিসাবে পরিচিত এবং প্রতিটি ক্লজ (;;) দিয়ে শেষ হয়।
  • তারকা চিহ্ন* ডিফল্ট কেস সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে।
  • ব্যাশ কেস স্টেটমেন্ট প্রথমে বিভিন্ন প্যাটার্নের সাথে ইনপুট $ ভেরিয়েবলের সাথে মেলে। যদি একটি প্যাটার্ন মিলে যায়, তাহলে ডাবল সেমিকোলন (;;) পর্যন্ত কমান্ডের সংশ্লিষ্ট সেট কার্যকর করা হবে।

উদাহরণ 1:

নিচের উদাহরণটি ব্যাশ ক্যাশ স্টেটমেন্ট সম্পর্কে যেখানে ব্যবহারকারীকে মাসের নাম ইনপুট করতে বলে। যদি এই ইনপুটটি স্ক্রিপ্টে নির্ধারিত প্যাটার্নের সাথে মিলে যায়, তাহলে সংশ্লিষ্ট ইকো কমান্ড কার্যকর করা হবে। ইকো কমান্ড সেই বিশেষ মাসের আন্তর্জাতিক ইভেন্ট সম্পর্কে তথ্য প্রদর্শন করবে।





এই স্ক্রিপ্টটি ব্যবহার করতে, একটি সাধারণ টেক্সট ফাইল তৈরি করুন; .sh ফাইল এক্সটেনশন দিয়ে নাম দিন। এটিতে নিম্নলিখিত স্ক্রিপ্ট যুক্ত করুন এবং এটি সংরক্ষণ করুন। তারপরে টার্মিনালে নিম্নলিখিত কমান্ডটি চালানোর মাধ্যমে অনুমতিগুলি চালানোর জন্য এই ফাইলটি বরাদ্দ করুন:

$sudo chmod 777filename.sh

এই ব্যাশ ফাইলটি চালানোর জন্য, কেবল ./ এর পরে bash ফাইলের নাম অনুসরণ করুন:



$/filename.sh

যখন আপনি স্ক্রিপ্টটি চালাবেন, তখন আপনাকে ইনপুট হিসাবে মাসের নাম লিখতে বলা হবে। যদি মাসের নাম মিলে যায়, তাহলে এটি সেই নির্দিষ্ট মাসে সংশ্লিষ্ট ইভেন্টটি প্রদর্শন করবে, অন্যথায় কোন মিল পাওয়া তথ্য প্রদর্শিত হবে না।

উল্লেখ্য যে shopt -s nocasematch তার ক্ষেত্রে নির্বিশেষে প্যাটার্ন মেলে ব্যবহার করা হয়।

দোকান -এসnocasematch

বের করে দিল 'মাসের নাম লিখুন'
পড়ুনমাস
কেস $ মাস ভিতরে
জানুয়ারি)
বের করে দিল ২ 24 জানুয়ারি আন্তর্জাতিক শিক্ষা দিবস।
;;
ফেব্রুয়ারি)
বের করে দিল 20 ফেব্রুয়ারি সামাজিক ন্যায়বিচারের বিশ্ব দিবস।
;;
মার্চ)
বের করে দিল 'March ই মার্চ আন্তর্জাতিক নারী দিবস।'
;;
এপ্রিল)
বের করে দিল 'April এপ্রিল বিশ্ব স্বাস্থ্য দিবস'
;;
মে)
বের করে দিল '১৫ মে আন্তর্জাতিক পরিবার দিবস'
;;
জুন)
বের করে দিল '২০ জুন বিশ্ব শরণার্থী দিবস'
;;
জুলাই)
বের করে দিল '১১ জুলাই বিশ্ব জনসংখ্যা দিবস'
;;
*)
বের করে দিল 'কোনো মিলে যাওয়া তথ্য পাওয়া যায়নি'
;;
esac

উদাহরণ 2:

নিচের উদাহরণটি ব্যাশ ক্যাশ স্টেটমেন্ট সম্পর্কে যেখানে ব্যবহারকারীকে দেশের নাম ইনপুট করতে বলা হয়। যদি এই ইনপুটটি স্ক্রিপ্টে নির্ধারিত প্যাটার্নের সাথে মিলে যায়, তাহলে সংশ্লিষ্ট ইকো কমান্ড কার্যকর করা হবে। ইকো কমান্ড সেই নির্দিষ্ট দেশের রাজধানী সম্পর্কে তথ্য প্রদর্শন করবে।

এই স্ক্রিপ্টটি ব্যবহার করতে, উপরের উদাহরণে বর্ণিত একই পদ্ধতি অনুসরণ করুন। একবার হয়ে গেলে, স্ক্রিপ্টটি চালান, এবং আপনাকে ইনপুট হিসাবে দেশের নাম লিখতে বলা হবে। যদি দেশের নাম পূর্বে সংজ্ঞায়িত দেশের নামের সাথে মিলে যায়, তাহলে তা সেই দেশের মূলধন নাম প্রদর্শন করবে, অন্যথায়, তথ্য পাওয়া যাবে না এমন বার্তা প্রদর্শিত হবে।

#!/বিন/ব্যাশ
দোকান -এসnocasematch
বের করে দিল -এন 'একটি দেশের নাম লিখুন:'
পড়ুনদেশ

বের করে দিল -এন 'রাজধানী$ দেশহয় '
কেস $ দেশ ভিতরে
পাকিস্তান)
বের করে দিল -এন 'ইসলামাবাদ'
;;
ফিজি)
বের করে দিল -এন 'শুকনো'
;;
যুক্তরাজ্য| 'যুক্তরাজ্য')
বের করে দিল -এন 'লন্ডন'
;;
তুরস্ক)
বের করে দিল -এন 'আঙ্কারা'
;;
ব্যবহারসমূহ)
বের করে দিল -এন 'ওয়াশিংটন ডিসি'
;;
*)
বের করে দিল -এন 'তথ্য নেই'
;;
esac
বের করে দিল ''

ব্যাশ কেস স্টেটমেন্ট ব্যাশ-স্ক্রিপ্ট পড়া এবং বুঝতে সহজ করে। এই নিবন্ধে, আমরা কীভাবে বাশ কেস স্টেটমেন্ট লিখতে এবং ব্যবহার করতে হয় তা কভার করেছি। এখন আপনি কেস স্টেটমেন্ট ব্যবহার করে সহজেই এবং সহজভাবে একধরনের মাল্টিলেভেল if-else স্টেটমেন্ট লিখতে পারেন।