Bash 'if else' স্টেটমেন্ট: টিউটোরিয়াল এবং উদাহরণ

শর্তসাপেক্ষ কোড এক্সিকিউশনের জন্য ব্যাশে if…else স্টেটমেন্ট ব্যবহার করা।

Bash (Bourne Again Shell) হল GNU/Linux অপারেটিং সিস্টেমে একটি শেল কমান্ড প্রম্পট এবং স্ক্রিপ্টিং ভাষা। বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনের জন্য এটি ডিফল্ট শেল।

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

ভূমিকা

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

উল্লেখ্য, দুইটির বেশি শর্ত উল্লেখ করা যেতে পারে, যার জন্য এলিফ বিবৃতি ব্যবহার করা যেতে পারে। ব্যবহারকারী ব্যবহার করে যেকোনো শর্ত দিতে পারেন এলিফ, এবং অবশেষে একটি ডিফল্ট শর্ত ব্যবহার করে অন্য ব্লক আসুন নীচের সিনট্যাক্স এবং উদাহরণগুলিতে এটি সম্পর্কে আরও দেখুন।

সাধারণ সিনট্যাক্স

জন্য সাধারণ বাক্য গঠন অন্যথায় যদি বাশে বিবৃতি হল:

তাহলে  অন্য  fi

এখানে, যদি satisfies, অর্থাৎ, যদি এটি 0 (সফলতা) ফেরত দেয়, তাহলে কোড ব্লক 1 কার্যকর করা হয়। যদি শর্তটি 0 ফেরত না দেয়, অর্থাৎ, এটি একটি ব্যর্থতার স্থিতি প্রদান করে, তাহলে কোড ব্লক 2 কার্যকর করা হয়। দ্য অন্যথায় যদি ব্লক a দিয়ে শেষ হয় fi বিবৃতি

একাধিক শর্তের সাথে সংশ্লিষ্ট একাধিক ব্লকের জন্য,এলিফ ব্যবহৃত হয়:

তাহলে  elif তারপর  elif তারপর  ... ... অন্য  fi

এখানে, শর্তগুলি ক্রমানুসারে চেক করা হয় এবং প্রথম শর্তের কোড ব্লক যা স্ট্যাটাস 0 (সফলতা) প্রদান করে তা কার্যকর করা হয়। যেমন যদি অ শূন্য অবস্থা (ব্যর্থতা) প্রদান করে, তারপর আমি পরীক্ষা করে দেখেছি. যদি স্থিতি 0 ফেরত দেয়, মৃত্যুদন্ড কার্যকর করা হয়। এর পরে, আরও শর্ত চেক করা হয় না এবং কোড এক্সিকিউশন কোডের পরে চলতে থাকে fi বিবৃতি

যদি কোনো শর্তই 0 স্থিতি ফেরত না দেয়, অন্য ব্লকে কার্যকর করা হয়। নোট করুন যে অন্য ব্লকটি ঐচ্ছিক। কোন শর্ত সন্তুষ্ট না হলে, পাশাপাশি না অন্য ব্লক নির্দিষ্ট করা আছে, কোন শর্তসাপেক্ষ কোড ব্লক চলবে না, এবং কোড এক্সিকিউশন এর পরে কোডে চলতে থাকবে fi বিবৃতি, নীচের ফ্লোগ্রাফে দেখানো হয়েছে।

উল্লেখ্য যে তারপর বিবৃতি শুধুমাত্র পরে ব্যবহার করা হয় যদি এবং এলিফ বিবৃতি এবং পরে প্রয়োজন নেই অন্য বিবৃতি

উদাহরণ

একটি কোড ব্লক চালানোর জন্য যদি একটি ভেরিয়েবলের বিশেষ মান থাকে:

x=0 যদি [ $x -eq 0 ] তাহলে প্রতিধ্বনিত হয় "X-এর মান 0" অন্যথায় প্রতিধ্বনিত হয় "X-এর মান 0 নয়" fi

একাধিক মান পরীক্ষা করতে:

x=2 যদি [ $x -eq 0 ] তাহলে প্রতিধ্বনিত হয় "X এর মান 0" elif [ $x -eq 1 ] তারপর echo "X এর মান হল 1" elif [ $x -eq 2 ] তারপর প্রতিধ্বনিত হয় "এর মান X হল 2" অন্যথায় "X-এর মান 0 নয়" ফাই ইকো

শর্তাবলী যেকোনো লিনাক্স কমান্ড হতে পারে। কমান্ডটি সফলভাবে চালানো হলে সংশ্লিষ্ট কোড ব্লকটি কার্যকর হবে।

যদি npm -v তাহলে ইকো "সিস্টেমে উপস্থিত NPM" অন্যথায় sudo apt npm fi ইনস্টল করুন

উপরের উদাহরণে, যেহেতু npm সিস্টেমে ইনস্টল করা হয়নি, কমান্ড npm -v একটি অ শূন্য অবস্থা ফিরে. অত:পর, কোড এক্সিকিউশন মধ্যে গিয়েছিলাম অন্য ব্লক, যেখানে আমরা npm ব্যবহার করে ইনস্টল করি উপযুক্ত প্যাকেজ ম্যানেজার। আমরা দেখতে পাচ্ছি, এটি আমাকে পাসওয়ার্ড লিখতে অনুরোধ করেছিল এবং এনপিএম ইনস্টল করা শুরু করেছিল।

আমরা অন্যকেও বাসা বাঁধতে পারি অন্যথায় যদি একটি ভিতরে ব্লক যদি, অন্য বা এলিফ ব্লক:

x=0 y=1 যদি [ $x -eq 0 ] তাহলে প্রতিধ্বনি "X হল 0" যদি [ $y -eq 1 ] তাহলে প্রতিধ্বনি "Y হল 1" অন্য প্রতিধ্বনি "Y 1 নয়" fi অন্যথায় প্রতিধ্বনি "X হল 0" ফাই নয়

একটি প্রাথমিক শর্ত সন্তুষ্ট হওয়ার পরে শর্তগুলির একটি পৃথক সেট পরীক্ষা করা হলে এটি কার্যকর।

উদাহরণস্বরূপ, নিম্নলিখিত কোডটি একটি ওয়েব সার্ভার সফ্টওয়্যার ইনস্টল করার চেষ্টা করে:

nginx -v হলে ইকো করুন "NGINX ইতিমধ্যে ইনস্টল করা আছে।" অন্যথায় যদি sudo apt nginx ইনস্টল করে তাহলে "NGINX ইনস্টলেশন সফল।" elif sudo apt install apache2 তারপর echo করুন "APACHE2 ইনস্টলেশন সফল।" else echo "কোনও ওয়েব সফ্টওয়্যার ইনস্টল করতে অক্ষম।" fi

কোডটি প্রথমে চেক করে যে Nginx ইতিমধ্যে সিস্টেমে ইনস্টল করা আছে কিনা। যদি এটি হয় তবে এটি কেবল একটি বার্তা প্রদর্শন করে এবং প্রস্থান করে। যদি এটি না হয়, এটি Nginx ইনস্টল করার চেষ্টা করে।

যদি কোনো কারণে, Nginx প্যাকেজ থেকে সিস্টেমে ইনস্টল করা যায় না, এটি Apache2 ইনস্টল করার চেষ্টা করে। এমনকি যদি Apache2 ইনস্টল করার সময় ত্রুটি দেয়, এটি একটি বার্তা প্রদর্শন করে প্রস্থান করে যে কোনো সফ্টওয়্যার ইনস্টল করা যাবে না।

একইভাবে, একটি নেস্টেড ব্লক একটি ভিতরে ব্যবহার করা যেতে পারে এলিফ পাশাপাশি ব্লক।

নির্বাহ করা হচ্ছে অন্যথায় যদি: স্ক্রিপ্ট এবং কমান্ড লাইন

যেকোন ব্যাশ কোডের অনুরূপ, অন্যথায় যদি স্টেটমেন্ট ব্যাশ শেলে সরাসরি বা এক্সিকিউটেবল শেল স্ক্রিপ্ট ফাইল থেকে ব্যবহার করা যেতে পারে। একবার ব্যাশ দোভাষী একটি খুঁজে পায় যদি, অন্য বা এলিফ বিবৃতি, এটি ব্যবহারকারীকে কোড ব্লক প্রবেশ করতে দেওয়ার জন্য শেলটি চালিয়ে যায়।

ব্যবহারকারী এই কোডটিকে একটি স্ক্রিপ্ট ফাইলে সংরক্ষণ করতে এবং স্ক্রিপ্ট ফাইলটি চালাতে পারে।

দ্য #!/bin/bash শুরুতে ফাইলটি কার্যকর করার সময় ব্যবহার করা ইন্টারপ্রেটারকে নির্দিষ্ট করে। যদিও বাশ আজকাল সর্বাধিক ব্যবহৃত শেল, কিছু ব্যবহারকারী zsh এর মতো শেল পছন্দ করেন, যা এই ফাইলের শুরুতে bash-এর জায়গায় নির্দিষ্ট করা উচিত।

এই ফাইলটির জন্য এক্সিকিউট পারমিশন দিতে, চালান:

chmod +x test.sh

অবশেষে, ফাইলটি চালানোর জন্য, চালান:

./test.sh

উপসংহার

যেকোন প্রোগ্রামিং ভাষার অনুরূপ, অন্যথায় যদি বিবৃতি বাশের একটি মৌলিক বৈশিষ্ট্য। এর ব্যবহার শেখা মৌলিক এবং উন্নত স্ক্রিপ্ট লেখার ক্ষেত্রে অনেক দূর এগিয়ে যায়।