বাশ যদি-তারপর-অন্য উদাহরণ

Bash If Then Else Example



এই পাঠে, আমরা দেখব কিভাবে আমরা বাশ এনভায়রনমেন্ট স্ক্রিপ্টে ইফ-তখন-ইলেস স্টেটমেন্ট ব্যবহার করতে পারি। যদি কিছু শর্ত পূরণ করা হয় তাহলে স্ক্রিপ্টের কর্মের পথ নির্ধারণ করার উপায় প্রদান করার জন্য যদি-তারপর-অন্যথায় বিবৃতি একটি দরকারী হাতিয়ার। আসুন দেখা যাক If-then-Else স্টেটমেন্টের জন্য সিনট্যাক্স কি:

যদিকিছু আদেশ;
তারপরতারপর আদেশ;
অন্যELSE- আদেশ;
থাকা

উপরের কমান্ডে দেখানো হয়েছে, যদি কিছু আদেশ সত্য বলে প্রমাণিত হয় অথবা তার রিটার্ন স্ট্যাটাস 0 পাওয়া যায়, তাহলে THEN-COMMANDS কার্যকর করা হবে। যদি এটি না হয় তবে ELSE-COMMANDS কার্যকর করা হয়। কিছু আদেশে, আমরা সাধারণত পূর্ণসংখ্যা আকারে কিছু স্ট্রিং তুলনা বা মান তুলনা করি। আমরা অনেক অপারেশন করতে পারি যার মধ্যে ফাইল জড়িত। আসুন কিছু উদাহরণ প্রাথমিক কমান্ড দেখি যা প্রধানত ফাইল-ভিত্তিক অবস্থার সাথে কাজ করার সময় ব্যবহৃত হয়:







প্রাথমিক অর্থ
[ -প্রতি ] FILE বিদ্যমান থাকলে সত্য ফিরে আসে।
[-বি] FILE বিদ্যমান থাকলে এবং একটি ব্লক বিশেষ ফাইল হলে সত্য ফিরে আসে।
[-সি] FILE বিদ্যমান থাকলে এবং একটি অক্ষর বিশেষ ফাইল হলে সত্য ফিরে আসে।
[-ডি] যখন FILE বিদ্যমান থাকে এবং একটি ডিরেক্টরি থাকে তখন সত্য ফিরে আসে।
[ -এবং ] FILE বিদ্যমান থাকলে সত্য ফিরে আসে।
[-ফ] FILE বিদ্যমান থাকলে এবং একটি নিয়মিত ফাইল হলে সত্য ফিরে আসে।
[-গ] FILE বিদ্যমান থাকলে এবং এর SGID বিট সেট করা হলে সত্য ফিরে আসে।
[-হ] FILE বিদ্যমান এবং একটি প্রতীকী লিঙ্ক হলে সত্য ফিরে আসে।
[-কে] FILE বিদ্যমান থাকলে এবং এর স্টিকি বিট সেট করা হলে সত্য ফিরে আসে।
[-পি] যখন FILE বিদ্যমান থাকে এবং একটি নামযুক্ত পাইপ (FIFO) হয় তখন সত্য ফিরে আসে।
[-আর] FILE বিদ্যমান এবং পঠনযোগ্য হলে সত্য ফিরে আসে।
[-স] যখন FILE বিদ্যমান থাকে এবং শূন্যের চেয়ে বড় আকার থাকে তখন সত্য ফিরে আসে।
[-টি] ফাইল বর্ণনাকারী FD খোলা থাকলে এবং একটি টার্মিনালকে নির্দেশ করলে সত্য ফিরে আসে।
[-উ] FILE বিদ্যমান থাকলে এবং তার SUID (সেট ইউজার আইডি) বিট সেট করা হলে সত্য ফিরে আসে।
[ -ভিতরে ] FILE বিদ্যমান এবং লেখার যোগ্য হলে সত্য ফিরে আসে।
[-এক্স] FILE বিদ্যমান এবং এক্সিকিউটেবল হলে সত্য ফিরে আসে।
[-ও] FILE বিদ্যমান থাকলে এবং কার্যকর ইউজার আইডির মালিকানাধীন হলে সত্য ফিরে আসে।
[-জি] FILE বিদ্যমান থাকলে এবং কার্যকরী গ্রুপ আইডির মালিকানাধীন হলে সত্য ফিরে আসে।
[ -দ্য ] FILE বিদ্যমান এবং একটি প্রতীকী লিঙ্ক হলে সত্য ফিরে আসে।
[-এন] যখন ফাইলটি বিদ্যমান থাকে এবং এটি শেষবার পড়া হয়েছিল তখন থেকে পরিবর্তন করা হয়েছে।
[-এস] যখন FILE বিদ্যমান থাকে এবং একটি সকেট থাকে তখন সত্য ফিরে আসে।

THEN-COMMANDS এবং ELSE-COMMANDS কোন বৈধ UNIX অপারেশন বা যেকোনো এক্সিকিউটেবল প্রোগ্রাম হতে পারে। উল্লেখ্য যে তারপর এবং থাকা কমান্ডগুলি আধা-কোলন দ্বারা পৃথক করা হয় কারণ সেগুলি একটি স্ক্রিপ্টের সম্পূর্ণ পৃথক উপাদান হিসাবে বিবেচিত হয়।



যদি-তাহলে-অন্য সহজ উদাহরণ

আসুন আমাদের পাঠ শুরু করি খুব সহজ উদাহরণ দিয়ে If-Then-Else স্টেটমেন্ট দিয়ে।
এখানে একটি নমুনা প্রোগ্রাম:



যদি উদাহরণ

যদি উদাহরণ





আমাদের স্ক্রিপ্ট চালানোর সময় আমরা যে আউটপুটটি দেখি তা হল:

$ ifelse1.sh
মান একই!
$

কমান্ড-লাইন আর্গুমেন্ট ব্যবহার করে

আমরা আমাদের স্ক্রিপ্টে কমান্ড-লাইন আর্গুমেন্ট ব্যবহার করতে পারি এবং যুক্তি সংখ্যার সংখ্যা এবং মানগুলি আইএফ স্টেটমেন্টে একটি শর্ত হিসাবে ব্যবহার করতে পারি। আমরা প্রথমে নিম্নলিখিত বিষয়বস্তু সহ একটি পাঠ্য ফাইল সংজ্ঞায়িত করি:



আমার নাম লিনাক্সহিন্ট। আমি সার্ভার পছন্দ করি, বিশেষ করে উবুন্টু। তারা তাই
টার্মিনাল!

এখন, আমরা একটি স্ক্রিপ্ট লিখতে পারি যা একটি পাঠ্য ফাইলে একটি শব্দ ঘটে কিনা তা খুঁজে পায়। এখন স্ক্রিপ্ট সংজ্ঞায়িত করা যাক:

বের করে দিল '$ 2 এর মধ্যে $ 1 খুঁজে পাওয়া'
খপ্পর $ 1 $ 2
যদি [ $? -জন্ম 0 ]
তারপর
বের করে দিল '$ 2 ফাইলে $ 1 পাওয়া যায়নি।'
অন্য
বের করে দিল $ 2 ফাইলে $ 1 পাওয়া গেছে।
থাকা
বের করে দিল 'স্ক্রিপ্ট সম্পন্ন হয়েছে।'

এই স্ক্রিপ্টটি খুবই গতিশীল। এটি শব্দটিকে খুঁজে পেতে এবং কমান্ড-লাইন থেকে অনুসন্ধান করার জন্য ফাইল বিবেচনা করে। এখন, আমরা আমাদের স্ক্রিপ্ট চালানোর জন্য প্রস্তুত:

। ifelse2.sh ভালবাসা hello.txt

আমরা একটি আউটপুট দেখতে পাব:

ভালোবাসার সন্ধানভিতরেhello.txt
ভালোবাসা পাওয়া গেছেভিতরে ফাইলhello.txt।
স্ক্রিপ্ট সম্পন্ন।

কমান্ড-লাইন আর্গুমেন্টের সংখ্যা পরীক্ষা করা হচ্ছে

একটি আইএফ স্টেটমেন্টের ভিতরে, আমরা কমান্ড-লাইনে কতগুলি আর্গুমেন্ট পাঠানো হয়েছিল তাও পরীক্ষা করতে পারি যাতে আমরা একই কাজ করতে পারি:

গণনা=$ #
যদি [ ! $ count -জিটি ]
তারপর
বের করে দিল 'পর্যাপ্ত যুক্তি নেই'
অন্য
বের করে দিল 'ভাল করেছ!'
থাকা

এখন এই স্ক্রিপ্টটি চালানো যাক, আমরা নিম্নলিখিত আউটপুট দেখতে পাব:

কমান্ড লাইন আর্গুমেন্ট

কমান্ড লাইন আর্গুমেন্ট

If-then-Elif-Else বিবৃতি

আমরা একই ব্লকে একাধিক আইএফ স্টেটমেন্টও রাখতে পারি যাতে আমাদের প্রোগ্রাম আমাদের যে সংজ্ঞায়িত কমান্ডগুলি কার্যকর করতে পারে তার সিদ্ধান্তের পথ সংকুচিত করতে পারে। আমাদের স্ক্রিপ্টে একাধিক IF স্টেটমেন্ট সংজ্ঞায়িত করার জন্য এখানে সিনট্যাক্স রয়েছে:

যদিপরীক্ষা-নির্দেশ;
তারপর
ফলাফল-আদেশ;
এলিফ
অন্য আদেশ;
তারপর
অন্য-ফলাফল-আদেশ;
অন্য
বিকল্প-আদেশ;
থাকা

এটি বেশ পরিচিত মনে হলেও এবং অনুসরণ করাও সহজ। গাছ কিভাবে কাজ করে তা প্রতিষ্ঠার জন্য একটি সহজ উদাহরণ সংজ্ঞায়িত করা যাক:

গণনা=$ #
যদি [ $ count -ইক ]
তারপর
বের করে দিল 'শুধুমাত্র একটি যুক্তি পাওয়া গেছে।'
এলিফ [ $ count -ইক 2 ]
তারপর
বের করে দিল 'আরও ভাল, দুটি যুক্তি পাওয়া গেছে।'
অন্য
বের করে দিল 'ভালো চাকরি, অনেক যুক্তি পাওয়া গেছে!'
থাকা

এই কমান্ড দিয়ে আমরা যা ফিরে পেয়েছি তা এখানে:

যদি তারপর Elif অন্য উদাহরণ

যদি তারপর Elif অন্য উদাহরণ

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

IF-ELSE বিবৃতি দরকারী যখন আপনার কাছে বিকল্পগুলির একটি বড় তালিকা রয়েছে যা আপনাকে সিদ্ধান্ত নিতে হবে। কিন্তু যদি আপনি ফলাফলের সাথে সঠিক মিলের ক্ষেত্রে শুধুমাত্র একটি ক্রিয়া সম্পাদন করতে চান, আমরা ব্যাশ স্ক্রিপ্টগুলিতেও CASE বিবৃতি ব্যবহার করতে পারি। এর সিনট্যাক্স এর মত দেখাচ্ছে:

কেসঅভিব্যক্তিভিতরেমামলা 1)কমান্ড-টু-এক্সিকিউট;
CASE2)কমান্ড-টু-এক্সিকিউট;
CASE2)কমান্ড-টু-এক্সিকিউট;
...)কমান্ড-টু-এক্সিকিউট;
*)কমান্ড-টু-এক্সিকিউট;
esac

* এর সাথে শেষ কেসটি ডিফল্ট কেস হিসাবে কাজ করে এবং কার্যকর করা হবে যখন উপরের-সংজ্ঞায়িত কোন ক্ষেত্রেই মিল পাওয়া যাবে না।

CASE স্টেটমেন্ট ব্যবহার করে দ্রুত একটি সহজ উদাহরণ তৈরি করা যাক:

কেস '$ 1' ভিতরে
)
বের করে দিল 'মান 1।'
;;
2)
বের করে দিল 'মান 2।'
;;
3)
বের করে দিল 'মান 3।'
;;
*)
বের করে দিল 'অন্যান্য মান পাস।'
esac

প্রতিটি CASE স্টেটমেন্ট by দ্বারা সমাপ্ত হয়; (ডবল আধা কোলন চিহ্ন)। এই কমান্ড দিয়ে আমরা যা ফিরে পেয়েছি তা এখানে:

কেস উদাহরণ

কেস উদাহরণ

উপসংহার

এই পাঠে, আমরা দেখেছি কিভাবে আমরা ব্যাশ স্ক্রিপ্টে IF-ELSE, IF-THEN-ELIF এবং CASE স্টেটমেন্ট ব্যবহার করতে পারি আমরা আমাদের কর্মসূচিতে বিদ্যমান মূল্যবোধের ভিত্তিতে সুনির্দিষ্ট পদক্ষেপ নেওয়ার জন্য সংজ্ঞায়িত করি অথবা ব্যবহারকারী কর্তৃক অবস্থানগত ব্যবহার করে পাস পরামিতি