কিভাবে ব্যাশে ফাংশন তৈরি এবং কল করতে হয় তার একটি দ্রুত নির্দেশিকা।
একটি ফাংশন হল পুনঃব্যবহারযোগ্য কোডের একটি ব্লক যা কিছু ক্রিয়া সম্পাদন করতে ব্যবহৃত হয়। ফাংশনগুলির সাথে, আমরা আরও ভাল মডুলারিটি এবং উচ্চ মাত্রার কোড পুনঃব্যবহার পাই৷
Bash কিছু বিল্ট-ইন ফাংশন প্রদান করে যেমন echo
এবং read
, কিন্তু আমরা আমাদের নিজস্ব ফাংশনও তৈরি করতে পারি।
ব্যাশে একটি ফাংশন তৈরি করা
ব্যাশে আমরা দুটি উপায়ে ফাংশন তৈরি করতে পারি:
একটি উপায় হল শুধুমাত্র ফাংশনের নাম ব্যবহার করা, যেমন:
functionName(){
// scope of function
}
কমপ্যাক্ট সংস্করণ:
functionName(){ echo "hello"; }
আরেকটি উপায় হল function
ব্যবহার করে একটি ফাংশন ঘোষণা করা কীওয়ার্ড:
function functionName {
// scope of function
}
কমপ্যাক্ট সংস্করণ:
function functionName { echo "hello"; }
লক্ষ্য করুন কিভাবে আমাদের ()
এর প্রয়োজন নেই function
ব্যবহার করার সময় একটি ফাংশন তৈরি করতে কীওয়ার্ড।
ব্যাশ ফাংশন সম্পর্কে নোট করার জন্য গুরুত্বপূর্ণ পয়েন্ট:
- কোঁকড়া বন্ধনীর মধ্যে কোড
{}
হল ফাংশন বডি এবং স্কোপ - একটি ফাংশন কল করার সময়, আমরা ব্যাশ স্ক্রিপ্টের যেকোনো জায়গা থেকে ফাংশনের নাম ব্যবহার করি
- ফাংশনটি ব্যবহার করার আগে অবশ্যই সংজ্ঞায়িত করা উচিত
- কমপ্যাক্ট সংস্করণ ব্যবহার করার সময়, শেষ কমান্ডটিতে একটি সেমিকোলন
;
থাকতে হবে
উদাহরণ:
নিম্নলিখিত কোডটি একটি ফাংশন তৈরি করে যা কনসোলে "হ্যালো ওয়ার্ল্ড" প্রিন্ট করে। ফাংশনের নাম printHello বলা হয় :
#!/bin/bash
printHello(){
echo "Hello World!"
}
ব্যাশে একটি ফাংশন কল করা
আমরা কিভাবে উপরের ফাংশন কল করব? আপনার ব্যাশ স্ক্রিপ্টে আপনাকে যা করতে হবে তা হল ফাংশনের নাম লিখতে এবং এটিকে বলা হবে৷
যেমন:
#!/bin/bash
printHello(){
echo "Hello World!"
}
# Call printHello function from anywhere in the script by writing the name
printHello
আউটপুট:
"Hello World"
পাসিং আর্গুমেন্ট
উপরের ফাংশন printHello()
কোন প্যারামিটার নেই। যে কোনো সময় আমরা এটিকে কল করি, আমরা "হ্যালো ওয়ার্ল্ড" আউটপুট পাই। কিন্তু আমরা যদি আরও জেনেরিক ফাংশন তৈরি করতে চাই? উদাহরণস্বরূপ আমরা কিছু যুক্তি দিয়ে ফাংশনটিকে কল করতে পারি এবং আমরা এটিতে যা পাঠাব তা প্রিন্ট করবে।
এটি করার দুটি উপায় রয়েছে৷
৷
প্রথমে আমরা printHello()
পরিবর্তন করতে পারি এতে পাস করা আর্গুমেন্টগুলি প্রিন্ট করার ফাংশন:
যেমন:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny World
printAny DevQa
printAny I love coding!
আউটপুট:
Hello World
Hello DevQA
Hello I
লক্ষ্য করুন কিভাবে তৃতীয় প্রিন্ট স্টেটমেন্ট printAny I love coding!
শুধুমাত্র "হ্যালো, আমি" আউটপুট।
কারণ আমাদের ফাংশনটি শুধুমাত্র 1 প্যারামিটার $1
নেওয়ার জন্য ডিজাইন করা হয়েছে . শব্দ "আমি কোডিং ভালোবাসি!" আসলে 3 প্যারামিটার।
আমরা যদি এটি মুদ্রণ করতে চাই তবে আমাদের পাঠ্যের চারপাশে উদ্ধৃতি রাখতে হবে
যেমন:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny "I love coding!"
আউটপুট:
Hello I love coding
আরেকটি উদাহরণ, আমরা অঙ্কেও পাস করতে পারি:
#!/bin/bash
add() {
result=$(($1 + $2))
echo "Result is: $result"
}
add 1 2
আউটপুট:
Result is: 3
রিটার্নিং মান
ব্যাশ ফাংশনও মান ফেরত দিতে পারে।
যেমন:
#!/bin/bash
add() {
result=$(($1 + $2))
}
add 1 2
echo "The sum is: "$result
আউটপুট:
The sum is: 3
একটি ফাংশন থেকে মান ফেরত দেওয়ার আরেকটি উপায় হল একটি ভেরিয়েবলের ফলাফল বরাদ্দ করা যা প্রয়োজন হিসাবে এবং যখন ব্যবহার করা যেতে পারে।
যেমন:
#!/bin/bash
add () {
local result=$(($1 + $2))
echo "$result"
}
result="$(add 1 2)"
echo "The sum is: "$result
আউটপুট:
The sum is: 3