লিনাক্সে কাজগুলি স্বয়ংক্রিয় করার জন্য ডেভেলপারদের জন্য ব্যাশ স্ক্রিপ্টিং একটি গুরুত্বপূর্ণ হাতিয়ার।
ব্যাশ স্ক্রিপ্টগুলি স্থানীয়ভাবে ডেভেলপমেন্ট কাজগুলিকে স্বয়ংক্রিয় করতে ব্যবহার করা যেতে পারে (যেমন স্থাপনার জন্য ফাইল আপলোড করা, অ্যাপ কম্পাইল করা, বা বাল্কে চিত্রের আকার পরিবর্তন করা), সেইসাথে সার্ভার-সাইড কাজগুলির জন্য (নির্ধারিত ইমেল পাঠানো, বিরতিতে ডেটা সংগ্রহ করা, বা ডিভাইসগুলিতে বিজ্ঞপ্তি পাঠানো। )।
আপনি অন্য টাস্ক বা পরিবর্তনশীলের ফলাফলের উপর নির্ভর করে কিছু কাজ চালাতে চাইবেন, এবং সেখানেই if … else তোমাকে সাহায্য করব. ব্যাশ স্ক্রিপ্টে এই সিদ্ধান্ত নেওয়ার প্রক্রিয়াকে বলা হয় শর্তসাপেক্ষ ব্যবহার করে .
এই টিউটোরিয়ালটি if… else-এর জন্য বিশদ বিবরণ এবং উদাহরণ ব্যবহার প্রদান করবে ব্যাশে বিবৃতি।
if ব্যবহার করা বিবৃতি
একটি সাধারণ ইফ স্টেটমেন্ট তার অন্তর্ভুক্ত ক্রিয়াগুলি সম্পাদন করবে যদি শর্তগুলি সত্য হয়, এবং নিম্নরূপ দেখায়:
<পূর্ব>যদি শর্ত; তারপর ACTIONSfiএকটি সম্পূর্ণ উদাহরণ:
#!/bin/bashif [ 2 -lt 3 ]; তারপর প্রতিধ্বনি "2 হল 3 থেকে কম!"fi
মনে রাখবেন:
- সমস্ত ব্যাশ স্ক্রিপ্ট লাইন দিয়ে শুরু হয় #!/bin/bash
- The -lt প্রথম মান দ্বিতীয়টির চেয়ে কম কিনা অপারেটর পরীক্ষা করে। যদি আমরা পরীক্ষা করতে চাই যে দ্বিতীয় মানটি প্রথমটির চেয়ে বেশি, তাহলে আমরা -gt ব্যবহার করব
- আরো লজিক্যাল অপারেটরের তালিকার জন্য পড়ুন৷৷
- আমরা echo ব্যবহার করছি কমান্ড লাইনে টেক্সট আউটপুট করতে কমান্ড
- যদি বিবৃতি সবসময় fi দিয়ে শেষ হয় তাদের বন্ধ করতে
অন্য ব্যবহার করা বিবৃতি
আপনি যদি শর্তের সেটের উপর ভিত্তি করে একটি ক্রিয়া সম্পাদন করতে চান, এবং তারপরে একটি ভিন্ন পদক্ষেপ কেবল যদি সেই শর্তগুলি ব্যর্থ হয়, আপনি অন্যথা ব্যবহার করতে পারেন বিবৃতি:
#!/bin/bashecho -n "নম্বর লিখুন:"পড়ুন numberif [ $number -lt 3 ]; তারপর প্রতিধ্বনি "$number 3-এর কম!"অন্যায় প্রতিধ্বনি "$number 3-এর কম নয়!"fi
মনে রাখবেন:
- মানগুলির তুলনা এবং পাঠ্য আউটপুট করার জন্য আমরা এখনও উপরের মতো একই উপাদান ব্যবহার করছি
- আমরা পড়া ব্যবহার করছি ব্যবহারকারীর ইনপুট পেতে কমান্ড
- পরবর্তীতে ব্যবহারের জন্য একটি মান সংরক্ষণ করতে আমরা একটি ভেরিয়েবল ব্যবহার করছি
elif ব্যবহার করা (অন্যথা হলে) বিবৃতি
শর্তের একাধিক সেট পরীক্ষা করতে এবং প্রতিটি পরীক্ষা সত্য হলে বিভিন্ন ক্রিয়া সম্পাদন করতে, elif ব্যবহার করুন (অন্যথা হলে) বিবৃতি:
#!/bin/bashecho -n "নম্বর লিখুন:"পড়ুন numberif [ $number -lt 3 ]; তারপর প্রতিধ্বনি "$সংখ্যা 3 থেকে কম!"elif [ $number -eq 3]; তারপর প্রতিধ্বনি "$number সমান 3!"অন্যায় প্রতিধ্বনি "$number 3-এর কম নয়!"fi
যদি-এ একাধিক শর্ত বিবৃতি
যদি আপনার একাধিক শর্ত থাকে যা আপনি পরীক্ষা করতে চান, আপনি && ব্যবহার করতে পারেন (এবং ) এবং || (বা ) কর্ম সঞ্চালন করা উচিত কিনা তা সিদ্ধান্ত নিতে অপারেটররা
#!/bin/bashecho -n "নম্বর লিখুন:"পড়ুন numberif [[ $number -lt 3 ]] &&[[ $number -lt 0 ]]; তারপর প্রতিধ্বনি "$ সংখ্যা তিনের কম এবং ঋণাত্মক" এলিফ [[ $number -lt 3 ]] || [[ $number -gt 6 ]]; তাহলে প্রতিধ্বনি "$number নেতিবাচক নয়, কিন্তু 3-এর কম বা 6"এর চেয়ে বেশি" অন্যথায় "$number হল 3-এর চেয়ে বড় এবং 6"fi-এর চেয়ে কম
স্টেটমেন্ট নেস্টিং
আপনি if বসাতে পারেন অন্যান্য if এর ভিতরের বিবৃতি বিবৃতি:
#!/bin/bashecho -n "নম্বর লিখুন:"পড়ুন numberif [$number -gt 3]; তারপর প্রতিধ্বনি "$number 3 এর চেয়ে বড়" যদি [$number -gt 6]; তারপর প্রতিধ্বনি "$numberও 6 এর চেয়ে বড়" অন্যথায় প্রতিধ্বনি "$numberও 6" এর চেয়ে বড় নয়" fifi
তুলনা অপারেটর
উপরের উদাহরণগুলিতে, আমরা -lt ব্যবহার করেছি (এর চেয়ে কম), -gt (এর চেয়ে বড়), এবং = (সমান) অপারেটর। এখানে কিছু সাধারণভাবে ব্যবহৃত লজিক্যাল অপারেটর রয়েছে:
সংখ্যার তুলনা
$number1 -eq $number2 :সত্য ফেরত দেয় যদি ভেরিয়েবলগুলি সমান হয়$number1 -gt $number2 :$number1 $number2$number1 -ge $number2-এর থেকে বড় হলে সত্য ফেরত দেয়:$number1 সমান হলে বা $number2$number1 -lt $number2 এর চেয়ে বড় :$number1 $number2$number1 -le $number2 এর কম হলে সত্য ফেরত দেয় :$number1 $number2 এর সমান বা কম হলে সত্য ফেরত দেয়
স্ট্রিং তুলনা করা
$string1 =$string2 :সত্য ফেরত দেয় যদি $string1 এবং $string2 সমান হয় $string1 !=$string2 :সত্য ফেরত দেয় যদি $string1 এবং $string2 সমান না হয়
উপরে দেখানো হিসাবে, একটি তুলনা অভিব্যক্তির ফলাফল বিপরীত করতে, ! বসান (NOT) এর সামনে অপারেটর, উদাহরণস্বরূপ, *!=মানে সমান নয়।
স্ট্রিংগুলির তুলনা করার সময়, সর্বদা সেগুলিকে ডবল কোটে মোড়ানো রাখুন যাতে কোনও স্পেস আপনার দ্বারা ভুল ব্যাখ্যা না হয় ব্যাশ স্ক্রিপ্ট।
আপনার উদ্ধৃতিগুলির মধ্যে স্ট্রিং রয়েছে এমন ভেরিয়েবলগুলিকেও মোড়ানো উচিত যাতে সেগুলিকে ভুল ব্যাখ্যা করা না হয়:
#!/bin/bashecho -n "Enter string:"read stringif ["$string" ="hello there!"] echo "আপনি সেখানে হ্যালো বলেছেন!"fi
ফাইল বা ডিরেক্টরির স্থিতি পরীক্ষা করা হচ্ছে
-d $filepath :যদি $filepath বিদ্যমান থাকে এবং একটি ডিরেক্টরি-e $filepath হয় :সত্য ফেরত দেয় যদি $filepath বিদ্যমান থাকে তা নির্বিশেষে এটি একটি ফাইল বা ডিরেক্টরি-f $filepath :$filepath হলে সত্য ফেরত দেয় বিদ্যমান এবং একটি ফাইল-h $filepath :যদি $filepath বিদ্যমান থাকে এবং একটি প্রতীকী লিঙ্ক হয় তাহলে সত্য ফেরত দেয়- r $filepath :যদি $filepath বিদ্যমান থাকে এবং পঠনযোগ্য হয়- w $filepath :$filepath বিদ্যমান থাকলে সত্য ফেরত দেয় এবং is writable-x $filepath :যদি $filepath বিদ্যমান থাকে এবং এক্সিকিউটেবল হয়
উপসংহার
আপনার নিজস্ব ব্যাশ স্ক্রিপ্ট তৈরি করা আপনার প্রচুর সময় বাঁচাতে পারে, এবং আপনি মৌলিক বিল্ডিং ব্লকগুলি জানলে লিখতে খুব সহজ৷
যদি… অন্যথায় বিবৃতিগুলি আপনাকে নিয়ন্ত্রণ করতে দেয় যে কীভাবে আপনার স্ক্রিপ্ট ব্যবহারকারীর ইনপুট বা ফাইলগুলির স্থিতিতে প্রতিক্রিয়া জানায়৷
আরও জানতে আমাদের অন্যান্য ব্যাশ নিবন্ধগুলি দেখুন!