কম্পিউটার টিউটোরিয়াল

ব্যাশ ফাংশনে দক্ষতা: প্রোফেশনালের মত পুনরব্যবহারযোগ্য স্ক্রিপ্ট লিখুন

যখন আপনি প্রোগ্রামিং করেন, আপনি শाब্দিকভাবে একটি প্রসিডিউর বা একটি রুটিন ডিফাইন করছেন যা আপনি কম্পিউটারকে পারফর্ম করতে চান। একটি সহজ সাদৃশ্য কম্পিউটার প্রোগ্রামিংকে রুটি বেকিং সাথে তুলনা করে: আপনি একবার ইнг্রিডিয়েন্ট লিস্ট করেন কাজের পরিবেশ সেট আপ করতে, তারপর আপনি সেই ধাপগুলো লিস্ট করেন যা আপনাকে অবশ্যই নিতে হবে একটি রুটি পাওয়ার জন্য। প্রোগ্রামিং এবং বেকিং উভয়েই, কিছু ধাপ বিভিন্ন ইন্টারভালে পুনরাবৃত্তি করতে হয়। রুটি বেকিং-এ, উদাহরণস্বরূপ, এটি সাওরডো कलচার ফিড করার প্রসেস হতে পারে:

STIR=100
SNOOZE=86400

function feed_culture {
remove_from(pantry)
add(flour, water)
stir($STIR)
sleep($SNOOZE)
}

এবং পরে, ডো নিডিং এবং প্রুফিং:

KNEAD=600
SNOOZE=7200

function process_dough {
remove_from(proofing_drawer)
knead($KNEAD)
return_to_drawer($SNOOZE)
}

প্রোগ্রামিং-এ, এই সাবরুটিনগুলোকে ফাংশন হিসেবে এক্সপ্রেস করা যায়। ফাংশনগুলো প্রোগ্রামারদের জন্য গুরুত্বপূর্ণ কারণ এগুলো কোডে রিডানডেন্সি কমানো সাহায্য করে, যা পরিপাটি মেইনটেনেন্সের পরিমাণ কমায়। উদাহরণস্বরূপ, রুটি বেকিং-এর কাল্পনিক পরিস্থিতিতে, আপনি যদি ডো প্রুফ করার সময় পরিবর্তন করতে চান, যতক্ষণ আপনি একটি ফাংশন ব্যবহার করেছেন, আপনাকে শুধু সেকেন্ডের মানটি একবার পরিবর্তন করতে হবে, হয় একটি ভেরিয়েবল ব্যবহার করে (যাকে স্যাম্পল কোডে SNOOZE বলা হয়েছে) অথবা সরাসরি সাবরুটিনে যা ডো প্রসেস করে। এটি আপনার অনেক সময় বাঁচাতে পারে, কারণ আপনাকে আপনার কোডবেসে উঠা ডোয়ের প্রতিটি সম্ভাব্য menton খুঁজে বের করতে হবে না, চিন্তা করতে হবে না একটিও মিস করার বিষয়ে। অনেক বাগের কারণ হয়েছে একটি মিসড ভ্যালু যা পরিবর্তন হয়নি বা একটি খারাপ এক্সিকিউটেড sed কমান্ড সব শেষ ম্যাচ ক্যাচ করার আশায় ম্যানুয়ালি হান্ট না করতেই।

ব্যাশে, একটি ফাংশন ডিফাইন করা একদম সহজ সেটি আপনার লেখা স্ক্রিপ্ট ফাইলে সেট করে অথবা একটি আলাদা ফাইলে। আপনি যদি ফাংশনগুলো একটি ডেডিকেটেড ফাইলে সেভ করেন, আপনি সেটি আপনার স্ক্রিপ্টে source করতে পারেন যেভাবে আপনি C বা C++-এ include করবেন একটি লাইব্রেরি বা পাইথনে import করবেন একটি মডিউল। একটি ব্যাশ ফাংশন তৈরি করতে, function কীওয়ার্ড ব্যবহার করুন:

function foo {
# code here
}

এখানে একটি সহজ (এবং কিছুটা কন্ট্রাইভড, কারণ এটি আরও সহজ করা যেতে পারে) উদাহরণ কীভাবে একটি ফাংশন আর্গুমেন্টের সাথে কাজ করে:

#!/usr/bin/env bash
ARG=$1

function mimic {
if [[ -z $ARG ]]; then
ARG='world'
fi
echo "hello $ARG"
}

mimic $ARG

ফলাফলগুলো এখানে:

$ ./mimic
hello world
$ ./mimic everybody
hello everybody

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

ফাংশন কল করার লাইন ছাড়া, ফাংশন শুধু ডিফাইন হবে এবং কখনো রান করবে না।

আপনি যদি ব্যাশে নতুন হন, স্যাম্পল স্ক্রিপ্টটি একবার চূড়ান্ত লাইন সহ এবং আবার চূড়ান্ত লাইন কমেন্ট আউট করে এক্সিকিউট করে দেখুন।

ফাংশন ব্যবহার

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

  1. জাভাস্ক্রিপ্ট ফাংশন ব্যবহার: ধাপে ধাপে গাইড

  2. ব্যাশ শেল স্ক্রিপ্টিং মাস্টার করুন: লিনাক্স স্ক্রিপ্ট লেখা ও অটোমেট করার বেগাইনার গাইড

  3. কাস্টম শেল ফাংশন ও লাইব্রেরি মাস্টার করুন: লিনাক্স ব্যবহারকারীদের জন্য প্র্যাকটিক্যাল গাইড

  4. ব্যাশ শেল ফাংশন মাস্টার করুন: ৬টি প্র্যাক্টিক্যাল উদাহরণ ও টিপস