ব্যাশ কন্ডিশনাল স্টেটমেন্ট প্রোগ্রামার-নির্দিষ্ট বুলিয়ান কন্ডিশন true বা false ইভ্যালুয়েট হয়ের উপর ভিত্তি করে ভিন্ন কম্পিউটেশন বা অ্যাকশন পারফর্ম করে। এই স্টেটমেন্টগুলো আপনার শেল প্রোগ্রামের ভিন্ন অংশ এক্সিকিউট করতে ব্যবহৃত হয় কোনো নির্দিষ্ট কন্ডিশন true কিনা তার উপর ভিত্তি করে। ব্রাঞ্চ করার ক্ষমতা শেল স্ক্রিপ্টকে পাওয়ারফুল করে তোলে।
ব্যাশে, আমাদের নিচের কন্ডিশনাল স্টেটমেন্টগুলো রয়েছে:
- if..then..fi স্টেটমেন্ট (সিম্পল If)
- if..then..else..fi স্টেটমেন্ট (If-Else)
- if..elif..else..fi স্টেটমেন্ট (Else If ladder)
- if..then..else..if..then..fi..fi..(Nested if)
এইগুলো awk if স্টেটমেন্টের মতো যেগুলো আমরা পূর্বে আলোচনা করেছিলাম।
১. Bash If..then..fi স্টেটমেন্ট
if [ conditional expression ] then statement1 statement2 . fi
এই if স্টেটমেন্টকে সিম্পল if স্টেটমেন্টও বলা হয়। যদি দেওয়া কন্ডিশনাল এক্সপ্রেশন true হয়, তবে এটি "then" এবং "fi" কিওয়ার্ডের মাঝপথে সংরক্ষিত স্টেটমেন্টগুলোতে ঢুকে এক্সিকিউট করে। যদি দেওয়া এক্সপ্রেশন শূন্য রিটার্ন করে, তবে কনসিকوئেন্ট স্টেটমেন্ট লিস্ট এক্সিকিউট হয়।
if then fi উদাহরণ:
#!/bin/bash count=100 if [ $count -eq 100 ] then echo "Count is 100" fi
২. Bash If..then..else..fi স্টেটমেন্ট
If [ conditional expression ] then statement1 statement2 . else statement3 statement4 . fi
যদি কন্ডিশনাল এক্সপ্রেশন true হয়, তবে এটি স্টেটমেন্ট ১ এবং ২ এক্সিকিউট করে। যদি কন্ডিশনাল এক্সপ্রেশন শূন্য রিটার্ন করে, তবে এটি else অংশে জাম্প করে, এবং স্টেটমেন্ট ৩ এবং ৪ এক্সিকিউট করে। if/else অংশ এক্সিকিউশনের পর, এক্সিকিউশন কনসিকوئেন্ট স্টেটমেন্টসহ রিজিউম হয়।
if then else fi উদাহরণ:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else echo "Count is not 100" fi
নোট: এই আর্টিকেল চলমান Bash Tutorial সিরিজের অংশ।
৩. Bash If..elif..else..fi
If [ conditional expression1 ] then statement1 statement2 . elif [ conditional expression2 ] then statement3 statement4 . . . else statement5 fi
আপনি এই if .. elif.. if ব্যবহার করতে পারেন, যদি আপনি অনেক ব্লক কোডের মধ্যে থেকে একটি সিলেক্ট করতে চান এক্সিকিউট করার জন্য। এটি এক্সপ্রেশন ১ চেক করে, যদি true হয় স্টেটমেন্ট ১,২ এক্সিকিউট করে। যদি এক্সপ্রেশন ১ false হয়, তবে এক্সপ্রেশন ২ চেক করে, এবং যদি সব এক্সপ্রেশন false হয়, তবে else ব্লকে ঢুকে else ব্লকের স্টেটমেন্টগুলো এক্সিকিউট করে।
if then elif then else fi উদাহরণ:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" elif [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi
৪. Bash If..then..else..if..then..fi..fi..
If [ conditional expression1 ] then statement1 statement2 . else if [ conditional expression2 ] then statement3 . fi fi
If স্টেটমেন্ট এবং else স্টেটমেন্ট ব্যাশে নেস্টেড হতে পারে। কিওয়ার্ড “fi” ইন্ডার if স্টেটমেন্টের শেষ নির্দেশ করে এবং সকল if স্টেটমেন্ট কিওয়ার্ড “fi” দিয়ে শেষ হওয়া উচিত।
উপরে উল্লেখিত “if then elif then else fi” উদাহরণটি নেস্টেড if-এ কনভার্ট করা যায় নিচের মত।
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else if [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi fi
আমাদের পরবর্তী আর্টিকেলে, আমরা ব্যাশ কন্ডিশনাল এক্সপ্রেশন প্র্যাক্টিক্যাল উদাহরণসহ কীভাবে ব্যবহার করব সেটা আলোচনা করব।
পরামর্শিত পড়াশোনা
Bash 101 Hacks, by Ramesh Natarajan। আমার অধিকাংশ সময় লিনাক্স এনভায়রনমেন্টে কাটে। তাই স্বাভাবিকভাবেই আমি ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিংয়ের বড় ফ্যান। ১৫ বছর আগে, যখন আমি *nix-এর বিভিন্ন ফ্লেভরে কাজ করতাম, তখন সি শেল এবং কোর্ণ শেলে অনেক কোড লিখতাম। পরে, যখন লিনাক্সে সিস্টেম অ্যাডমিনিস্ট্রেটর হিসেবে কাজ শুরু করলাম, প্রায় সব টাস্ক ব্যাশ শেল স্ক্রিপ্টিং দিয়ে অটোমেট করলাম। আমার ব্যাশ অভিজ্ঞতার ভিত্তিতে, আমি Bash 101 Hacks ইবুক লিখেছি যাতে ১০১টি প্র্যাক্টিক্যাল উদাহরণ আছে ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিং-এ। যদি আপনি ব্যাশ মাস্টার করার কথা ভাবছেন, তো নিজের উপকারে এই বইটি পড়ুন, যা আপনাকে আপনার ব্যাশ কমান্ড লাইন এবং শেল স্ক্রিপ্টিং নিয়ন্ত্রণে সাহায্য করবে।