ফাংশন এবং এর ব্যবহার
ফাংশন হলো প্রোগ্রামিংয়ের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠন বৃদ্ধি করে। ফাংশন হল এমন একটি কোড ব্লক যা একটি নির্দিষ্ট কাজ বা অ্যালগরিদম সম্পাদন করে, এবং একটি নামের মাধ্যমে একাধিক স্থানে ব্যবহৃত হতে পারে। এটি ইনপুট নেয় এবং একটি আউটপুট প্রদান করে (যদিও আউটপুট সব সময় আবশ্যক নয়)।
শেল স্ক্রিপ্টে ফাংশন ব্যবহারের মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো যায়, এবং স্ক্রিপ্ট লেখার সময় কোডের পরিষ্কারতা এবং রক্ষণাবেক্ষণ সহজ হয়।
1. ফাংশন কী?
ফাংশন হলো এমন একটি কোড ব্লক যা নির্দিষ্ট এক বা একাধিক কাজ সম্পাদন করে এবং সাধারণত তা পুনরায় একাধিক জায়গায় ব্যবহার করা যেতে পারে। ফাংশন ব্যবহারে কোড ছোট, পরিষ্কার এবং সহজভাবে রক্ষণাবেক্ষণযোগ্য হয়ে ওঠে।
2. শেল স্ক্রিপ্টে ফাংশন তৈরি এবং ব্যবহার
ফাংশন তৈরি করার সিনট্যাক্স:
function function_name {
commands
}অথবা
function_name() {
commands
}function_name: ফাংশনের নাম।commands: ফাংশনের ভিতরে যে কমান্ডগুলো চলবে তা।
3. ফাংশন উদাহরণ
উদাহরণ ১: একটি সাধারণ ফাংশন
#!/bin/bash
greet() {
echo "Hello, $1!"
}
greet "Alice"
greet "Bob"এখানে:
greetএকটি ফাংশন যার মাধ্যমে নামের আর্গুমেন্ট হিসেবে "Alice" এবং "Bob" দেয়া হয়।$1হল প্রথম আর্গুমেন্ট, অর্থাৎAliceএবংBobএর মান।
আউটপুট:
Hello, Alice!
Hello, Bob!4. ফাংশনে আর্গুমেন্ট পাঠানো
ফাংশনকে আর্গুমেন্ট (input) পাঠানো সম্ভব, এবং ফাংশন ভেতরে সেই আর্গুমেন্ট ব্যবহার করা যায়।
উদাহরণ ২: আর্গুমেন্ট নিয়ে ফাংশন তৈরি:
#!/bin/bash
add_numbers() {
sum=$(( $1 + $2 ))
echo "Sum is: $sum"
}
add_numbers 5 10এখানে:
add_numbersফাংশনটি দুটি নম্বর নেবে এবং তাদের যোগফল প্রিন্ট করবে।$1এবং$2হল ফাংশনের প্রথম এবং দ্বিতীয় আর্গুমেন্ট।
আউটপুট:
Sum is: 155. ফাংশন থেকে মান রিটার্ন করা
শেল স্ক্রিপ্টে সরাসরি ফাংশন থেকে মান রিটার্ন করার জন্য echo বা return ব্যবহার করা হয়। তবে return শুধুমাত্র ফাংশনের শেষ স্টেটাস কোড রিটার্ন করে (যা সাধারণত ০ থেকে ২৫৫ মধ্যে থাকে), এবং echo কমান্ড দ্বারা ফলাফল ফিরিয়ে আনা হয়।
উদাহরণ ৩: ফাংশন থেকে মান রিটার্ন করা:
#!/bin/bash
multiply() {
result=$(( $1 * $2 ))
echo $result
}
output=$(multiply 4 5)
echo "The result is: $output"এখানে:
multiplyফাংশন দুটি নম্বর নেবে এবং তাদের গুণফল ফেরত দিবে।$( )দ্বারাmultiplyফাংশনের আউটপুটকেoutputভেরিয়েবলে ধারণ করা হচ্ছে।
আউটপুট:
The result is: 206. ফাংশন কল করার বিভিন্ন উপায়
ডাইরেক্ট কল:
ফাংশনটি সরাসরি তার নাম দিয়ে কল করা যায়:greet "Alice"ফাংশন আর্গুমেন্টের মাধ্যমে:
ফাংশনে ইনপুট হিসাবে আর্গুমেন্ট পাঠানো যায়:add_numbers 5 10ফাংশন আউটপুট স্টোর করা:
ফাংশন থেকে প্রাপ্ত আউটপুট একটি ভেরিয়েবলে সংরক্ষণ করা যায়:result=$(multiply 4 5)
7. ফাংশন ব্যবহার: পুনরায় ব্যবহারযোগ্য কোড
ফাংশন ব্যবহার করলে কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো যায়। একাধিক জায়গায় একই কাজের জন্য ফাংশন কল করা যায়, যা কোডের পুনরাবৃত্তি কমায় এবং কোড ক্লিন রাখে।
উদাহরণ ৪: ফাংশন ব্যবহার করে ডিরেক্টরি চেক করা:
#!/bin/bash
check_directory() {
if [ -d "$1" ]; then
echo "Directory exists: $1"
else
echo "Directory does not exist: $1"
fi
}
check_directory "/home/user1"
check_directory "/home/user2"এখানে, check_directory ফাংশনটি একটি ডিরেক্টরি চেক করবে এবং তার অস্তিত্ব অনুযায়ী একটি বার্তা প্রিন্ট করবে। একে দুইবার কল করা হয়েছে, বিভিন্ন ইনপুট দিয়ে।
আউটপুট:
Directory exists: /home/user1
Directory does not exist: /home/user28. ফাংশন থেকে রিটার্ন কোড ব্যবহার
শেল স্ক্রিপ্টে ফাংশন কেবল একটি স্টেটাস কোড (অর্থাৎ 0 বা 1 বা অন্য কোন কোড) রিটার্ন করতে পারে। তবে আপনি echo এর মাধ্যমে একটি ফলাফলও ফিরিয়ে দিতে পারেন।
উদাহরণ ৫: রিটার্ন কোড ব্যবহার:
#!/bin/bash
check_even_or_odd() {
if (( $1 % 2 == 0 )); then
return 0 # even
else
return 1 # odd
fi
}
check_even_or_odd 5
status=$?
if [ $status -eq 0 ]; then
echo "The number is even."
else
echo "The number is odd."
fiএখানে, check_even_or_odd ফাংশনটি একটি নম্বর চেক করে এবং তার পরিণাম হিসাবে একটি রিটার্ন কোড প্রদান করে।
আউটপুট:
The number is odd.সারসংক্ষেপ
- ফাংশন হল কোডের একটি ব্লক যা একটি নির্দিষ্ট কাজ সম্পাদন করে এবং পুনরায় ব্যবহৃত হতে পারে।
- শেল স্ক্রিপ্টে ফাংশন তৈরি করা সহজ এবং এটি ইনপুট আর্গুমেন্ট গ্রহণ করতে পারে এবং আউটপুট প্রদান করতে পারে।
- ফাংশনের মাধ্যমে কোড পুনঃব্যবহারযোগ্য হয় এবং স্ক্রিপ্টের রক্ষণাবেক্ষণ সহজ হয়।
- শেল স্ক্রিপ্টে ফাংশনের সাহায্যে শর্তাধীন পরীক্ষা, গণনা, এবং অন্যান্য কার্য সম্পাদন করা সম্ভব।
ফাংশন ব্যবহারের মাধ্যমে শেল স্ক্রিপ্ট আরও সংগঠিত, পরিষ্কার এবং দক্ষ হয়ে ওঠে।
Read more