এই নিবন্ধটি ব্যাখ্যা করবে কিভাবে ফাংশন ব্যবহার করতে হয় ব্যাশ স্ক্রিপ্টে - আপনাকে আপনার কোড পুনরায় ব্যবহার করতে এবং আপনার স্ক্রিপ্টগুলিকে সহজ করতে সাহায্য করে৷
কেন একাধিকবার কোড লিখুন যখন আপনি এটি একবার লিখতে পারেন এবং এটি পুনরায় ব্যবহার করতে পারেন?
এটাই ফাংশন আপনাকে করতে দিন।
এই নিবন্ধটি ব্যাশ/শেল স্ক্রিপ্টে ফাংশন ব্যবহারের রূপরেখা দেয়।
একটি ফাংশন কি?
একটি ফাংশন এটি পুনরায় ব্যবহারযোগ্য কোডের একটি অংশ। ফাংশনগুলি পরামিতিগুলি গ্রহণ করতে পারে, যা তাদের বিভিন্ন ইনপুটে একই পুনরাবৃত্তিযোগ্য ক্রিয়া সম্পাদন করতে দেয়৷
ফাংশনগুলি সাধারণত কোনও ক্রিয়া সম্পাদন করে, আউটপুট বা মুদ্রণ ফলাফল, বা ভবিষ্যতে ব্যবহারের জন্য একটি মান প্রদান করে৷
কেন একটি ফাংশন ব্যবহার করুন?
উদাহরণস্বরূপ, আপনার কাছে একটি স্ক্রিপ্ট থাকতে পারে যা একটি ইমেল বিজ্ঞপ্তি পাঠায় যে কিছু ঘটেছে। আপনি যদি একাধিক প্রাপককে একাধিক ভিন্ন ইমেল পাঠাতে চান, তাহলে বার্তা পাঠানোর জন্য আপনি স্ক্রিপ্টে একই ইমেল পাঠানোর কোড একাধিকবার লিখতে পারেন।
একটি ফাংশন ব্যবহার করে, আপনি এই কোডটি শুধুমাত্র একবার লিখতে সক্ষম হবেন, তারপর এটিকে বিভিন্ন প্রাপক, বিষয় এবং বার্তার সাথে কল করুন, ডুপ্লিকেট কোডের পরিবর্তে একটি একক লাইন ফাংশন কলের মাধ্যমে।
ব্যাশ ফাংশন সিনট্যাক্স
ব্যাশ/শেল স্ক্রিপ্টে ফাংশন লেখার জন্য সিনট্যাক্স নিম্নরূপ:
name_of_function () { # COMMANDS # Optional return value }
মনে রাখবেন:
- নাম_অফ_ফাংশন যে নামটি আপনি
- ব্যবহার করে আপনার ফাংশনকে কল করতে সক্ষম হতে চান
- শুধুমাত্র আলফানিউমেরিক অক্ষর এবং আন্ডারস্কোর!
- ফাংশনের নামটি অবশ্যই () অনুসরণ করতে হবে (স্ট্যান্ডার্ড বন্ধনী)
- বন্ধনীর চারপাশের স্পেসগুলি নোট করুন! তাদের প্রয়োজন!
- যে কোডটি আপনি ফাংশনটি কার্যকর করতে চান সেটি অবশ্যই {}-এ মোড়ানো থাকতে হবে (কোঁকড়া বন্ধনী)
- এই কোঁকড়া বন্ধনীর বাইরের কোনো কোড ফাংশনের অংশ নয় এবং কার্যকর করা হবে না।
- কমান্ডস যে কোনো কমান্ড হতে পারে যা সাধারণত আপনার লিনাক্স সিস্টেমে পাওয়া যায়
- আপনি ঐচ্ছিকভাবে ফিরতে পারেন একটি মান - ব্যবহারের জন্য নিচের উদাহরণটি দেখুন
- একটি ফাংশন তাড়াতাড়ি শেষ করতে, আপনি রিটার্ন কল করতে পারেন ফাংশন থেকে প্রস্থান করার জন্য কোন মান ছাড়াই
- বিশেষ $? ভেরিয়েবল শেষ কার্যকর করা কমান্ড থেকে প্রত্যাবর্তিত মান ধরে রাখবে, ফাংশনটি চালানোর পরে এটি আপনার স্ক্রিপ্টের অন্য কোথাও উপলব্ধ করবে
উদাহরণ ও ব্যাখ্যা
এখানে একটি উদাহরণ রয়েছে যা বিভিন্ন ব্যাশ ফাংশন উপাদানগুলির সবকটি চিত্রিত করে – মন্তব্য সহ ব্যাখ্যা করে যে সবকিছু কী করছে৷
#!/bin/bash # Define a global variable - available anywhere in the script as it is not defined inside a function or loop initial_value=3 # Define a function which does some mathematics my_math_function () { # Get the parameters passed to the function # Parameters are passed after the function name when calling the function, and will be named in order of appearance, starting with $1, then $2, etc # Below, these parameter values are assigned to local variables - available only inside the function - so that it's easier to tell what they are local multiplier_value=$1 local addition_value=$2 # Calculate the result and assign it to a local variable # Notice the $(( )) wrapping the calculations - this tells the script to assign the result of these calculations to the results variable, rather than assigning the calculations as a text value local result=$(( $initial_value * $multiplier_value + $addition_value )) # Print the result to the console # Depending on how the function is used, text output from the function can be used to read results from it echo $result # It is also possible to get output from the function using a return value return $result } # Call the function with different input parameters # Parameters are passed to the function by typing them after the function separated by a space # The function above expects two parameters - a multiplier_value and addition_value my_math_function 2 4 # Will output 10 (2 * 3 + 4) my_math_function 3 5 # Will output 14 (3 * 3 + 5) # The $? is a special variable in Bash scripts which always holds the return value from the last executed command # It can be used to get the value specified as the return value from the function. echo $? # Will output 14 # Assign the result of the function to a variable # This will assign any text outputted by the function (for example using the echo command) to a variable my_result=$(my_math_function 6 7) echo $my_result # Will output 25 (6 * 3 + 7)
লিনাক্স শেল স্ক্রিপ্টে '#!' কী?
আপনার শেল স্ক্রিপ্টে মানগুলি পাস করতে চান (তাই আপনি এটির ফাংশনে তাদের পাস করতে পারেন)? এই নিবন্ধটি দেখুন।