বাশ কেস স্টেটমেন্ট উদাহরণ: সহজ এবং কার্যকর ব্যবহার
আপনি কি কখনো বাশ স্ক্রিপ্টিং ভাষায় কেস স্টেটমেন্ট ব্যবহারের সাথে পরিচিত হননি? যদি না হয়ে থাকেন, তবে আপনি আজকে শিখতে পারবেন কিভাবে এটি সহজে এবং কার্যকরভাবে ব্যবহার করতে হয়। এই আর্টিকেলে আমরা "bash case statement examples" নিয়ে আলোচনা করব, যা আপনার স্ক্রিপ্টিং দক্ষতাকে আরও উন্নত করবে।
বাশ কেস স্টেটমেন্ট কি?
বাশ কেস স্টেটমেন্ট একটি শর্তভিত্তিক কার্যক্রম যা নির্দিষ্ট মানের সাথে তুলনা করে বিভিন্ন কোড ব্লক রান করার জন্য ব্যবহৃত হয়। এটি ইনপুটের উপর ভিত্তি করে কোডের বিভিন্ন অংশ চালানোর জন্য আদর্শ। সাধারণভাবে, এটি খুবই কার্যকরী যখন আপনি একাধিক শর্তের মধ্যে নির্বাচন করতে চান। বাশ কেস স্টেটমেন্টে একটি নির্দিষ্ট মান পরীক্ষা করা হয় এবং এরপর সেই মানের সাথে মেলে এমন কোড ব্লকটি কার্যকর হয়।
কেস স্টেটমেন্ট এর মৌলিক গঠন
বাশ কেস স্টেটমেন্টের মৌলিক গঠন নিম্নরূপ:
case "$variable" in
"value1")
# কিছু কাজ কর
;;
"value2")
# অন্য কিছু কাজ কর
;;
*)
# ডিফল্ট কাজ
;;
esac
এখানে, "value1" এবং "value2" হল সম্ভাব্য মান, যা আপনার পরীক্ষা করা হয়। যখন কোন মান ম্যাচ করে, তখন সংশ্লিষ্ট কোড ব্লকটি কার্যকর হয়। `*)` একটি ডিফল্ট শর্ত, যা কোন মান না মেলা হলে কাজ করে।
বাশ কেস স্টেটমেন্ট উদাহরণ ১
ধরা যাক, আপনি একটি স্ক্রিপ্ট লিখছেন যা ইউজার ইনপুট নেবে এবং সেই ইনপুটের উপর ভিত্তি করে ভিন্ন ভিন্ন কর্মপদ্ধতি করবে। নিচের কোডটি দেখুন:
echo "আপনার পছন্দ দিন (গোলাপী, লাল, নীল):"
read color
case "$color" in
"গোলাপী")
echo "আপনি গোলাপী পছন্দ করেছেন!"
;;
"লাল")
echo "আপনি লাল পছন্দ করেছেন!"
;;
"নীল")
echo "আপনি নীল পছন্দ করেছেন!"
;;
*)
echo "আপনার পছন্দের রঙ জানা যায়নি।"
;;
esac
এই উদাহরণে, ইউজার যখন গোলাপী, লাল অথবা নীল নির্বাচন করবেন, তখন তাদের পছন্দ অনুযায়ী একটি মেসেজ প্রদর্শিত হবে। অন্য কোন ইনপুট দিলে "আপনার পছন্দের রঙ জানা যায়নি" মেসেজটি দেখানো হবে।
বাশ কেস স্টেটমেন্ট উদাহরণ ২
এখন, আমরা আরও একটি উদাহরণ দেখব যেখানে কেস স্টেটমেন্ট ব্যবহার করা হয়েছে কোন দিনের নাম অনুসারে কাজ করার জন্য:
echo "আজ কোন দিন?"
read day
case "$day" in
"সোমবার")
echo "আজ কাজের দিন!"
;;
"মঙ্গলবার" | "বুধবার" | "বৃহস্পতিবার")
echo "আজও কাজের দিন!"
;;
"শুক্রবার")
echo "আজ শুক্রবার, সপ্তাহান্তের জন্য প্রস্তুত হন!"
;;
"শনিবার" | "রবিবার")
echo "আজ সপ্তাহান্ত!"
;;
*)
echo "অবৈধ ইনপুট!"
;;
esac
এখানে, আমরা দিনের নাম অনুযায়ী বিভিন্ন বার্তা প্রিন্ট করতে দেখাচ্ছি। আপনি লক্ষ্য করবেন যে "মঙ্গলবার", "বুধবার" এবং "বৃহস্পতিবার" একই কোড ব্লকে আসছে, যেহেতু তারা একই ধরনের কাজ করবে।
কেস স্টেটমেন্টে প্যাটার্ন ম্যাচিং
বাশ কেস স্টেটমেন্টে প্যাটার্ন ম্যাচিংও সমর্থিত। এটি এমন একটি বৈশিষ্ট্য যা আপনাকে প্যাটার্নের সাথে মিলিয়ে ইনপুটের জন্য পরীক্ষণ করতে দেয়। উদাহরণস্বরূপ:
echo "ফাইল এক্সটেনশন দিন (যেমন .txt, .jpg):"
read file_extension
case "$file_extension" in
*.txt)
echo "এটি একটি টেক্সট ফাইল।"
;;
*.jpg)
echo "এটি একটি ছবি ফাইল।"
;;
*.pdf)
echo "এটি একটি পিডিএফ ফাইল।"
;;
*)
echo "অজানা ফাইল এক্সটেনশন।"
;;
esac
এখানে, ফাইলের এক্সটেনশন অনুযায়ী এটি পরীক্ষা করবে এবং নির্দিষ্ট কাজ করবে। যেমন, যদি ".txt" হয়, তবে এটি টেক্সট ফাইল হিসেবে গণ্য হবে।
বাশ কেস স্টেটমেন্টের সুবিধা
বাশ কেস স্টেটমেন্ট ব্যবহার করার বেশ কয়েকটি সুবিধা রয়েছে:
- সহজ এবং পরিষ্কার: কেস স্টেটমেন্ট কোডকে আরও পরিষ্কার এবং সহজ করে তোলে। এতে শর্তগুলো স্পষ্টভাবে দেখা যায় এবং কোড কমপ্লেক্সিটি কমে যায়।
- ফ্লেক্সিবিলিটি: আপনি একাধিক মানের জন্য একই কাজ করতে পারেন, যেমন উদাহরণে আমরা দেখেছি "মঙ্গলবার", "বুধবার", এবং "বৃহস্পতিবার" এর জন্য একই কোড ব্লক।
- ডিফল্ট কেস: আপনি কেস স্টেটমেন্টে একটি ডিফল্ট বিকল্প (অর্থাৎ `*`) যোগ করতে পারেন, যা তখন কার্যকর হবে যদি কোন শর্ত মেলে না।
বাশ কেস স্টেটমেন্টের সীমাবদ্ধতা
যদিও কেস স্টেটমেন্ট অনেক সুবিধা প্রদান করে, তবে এর কিছু সীমাবদ্ধতা রয়েছে। এক্ষেত্রে, কেস স্টেটমেন্ট একটি সরল শর্ত পরীক্ষণ হিসেবে ব্যবহৃত হয় এবং এটি অনেক জটিল শর্ত বিশ্লেষণের জন্য উপযুক্ত নয়। যেমন, এটি শুধুমাত্র সরল মানের সাথে তুলনা করতে পারে, তবে আপনি যদি প্যাটার্নের উপর নির্ভর করতে চান, তাহলে এটি একেবারেই প্রয়োজনীয় হতে পারে।
উপসংহার
এই আর্টিকেলে, আমরা "bash case statement examples" নিয়ে বিস্তারিত আলোচনা করেছি এবং দেখিয়েছি কিভাবে এটি ব্যবহার করা যায় আপনার স্ক্রিপ্টিং দক্ষতা উন্নত করার জন্য। কেস স্টেটমেন্ট খুবই শক্তিশালী এবং সহজ একটি টুল যা আপনাকে দ্রুত এবং কার্যকরভাবে শর্ত ভিত্তিক কাজ করতে সাহায্য করবে। তাই, যখন আপনি বাশ স্ক্রিপ্ট লেখবেন, কেস স্টেটমেন্ট ব্যবহার করতে ভুলবেন না!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!