কীভাবে কাস্টম শেল ফাংশন এবং গ্রন্থাগারগুলি লিখতে এবং ব্যবহার করতে হয়


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

এই নির্দেশিকায়, আমরা নতুন লিনাক্স ব্যবহারকারীদের দেখাব যেখানে নির্ভরযোগ্যভাবে কাস্টম শেল স্ক্রিপ্টগুলি সংরক্ষণ করতে হবে, কীভাবে কাস্টম শেল ফাংশন এবং গ্রন্থাগারগুলি লিখতে হবে, অন্যান্য স্ক্রিপ্টগুলিতে লাইব্রেরি থেকে ফাংশন ব্যবহার করতে হবে explain

শেল স্ক্রিপ্টগুলি কোথায় সঞ্চয় করবেন

সম্পূর্ণ/পরম পাথ টাইপ না করে আপনার স্ক্রিপ্টগুলি চালনার জন্য, সেগুলি অবশ্যই $PATH এনভায়রনমেন্ট ভেরিয়েবলের যে কোনও ডিরেক্টরিতে সংরক্ষণ করতে হবে।

আপনার AT PATH পরীক্ষা করতে নীচের কমান্ডটি প্রদান করুন:

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

সাধারণত, যদি ডিরেক্টরি বিন একটি ব্যবহারকারীর হোম ডিরেক্টরিতে উপস্থিত থাকে, তবে এটি স্বয়ংক্রিয়ভাবে তার/প্যাথের মধ্যে অন্তর্ভুক্ত হয়। আপনি এখানে আপনার শেল স্ক্রিপ্ট সংরক্ষণ করতে পারেন।

অতএব, বিন ডিরেক্টরি তৈরি করুন (এটি পার্ল, আউক বা পাইথন স্ক্রিপ্ট বা অন্য কোনও প্রোগ্রামও সঞ্চয় করতে পারে):

$ mkdir ~/bin

এরপরে, lib (লাইব্রেরির জন্য সংক্ষিপ্ত) নামে একটি ডিরেক্টরি তৈরি করুন যেখানে আপনি নিজের লাইব্রেরি রাখবেন। আপনি অন্যান্য ভাষার যেমন সি, পাইথন ইত্যাদির জন্য লাইব্রেরি রাখতে পারেন। এর অধীনে sh নামে আরেকটি ডিরেক্টরি তৈরি করুন; এটি বিশেষত আপনার শেল লাইব্রেরি সংরক্ষণ করবে:

$ mkdir -p ~/lib/sh 

আপনার নিজের শেল ফাংশন এবং গ্রন্থাগারগুলি তৈরি করুন

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

ফাংশন লেখার জন্য সিনট্যাক্সটি হ'ল:

function_name() { list of commands }

উদাহরণস্বরূপ, তারিখটি দেখানোর জন্য আপনি কোনও স্ক্রিপ্টে একটি ফাংশন লিখতে পারেন:

showDATE() {date;}

যতবার আপনি তারিখ প্রদর্শন করতে চান, কেবল তার নামটি ব্যবহার করে উপরের ফাংশনটির জন্য অনুরোধ করুন:

$ showDATE

একটি শেল লাইব্রেরি কেবল শেল স্ক্রিপ্ট, তবে, আপনি কেবল আপনার ফাংশনগুলি সংরক্ষণ করতে একটি লাইব্রেরি লিখতে পারেন যা পরে আপনি অন্যান্য শেল স্ক্রিপ্ট থেকে কল করতে পারেন।

নীচে আমার ~/lib/sh ডিরেক্টরিতে ফাংশনের আরও উদাহরণ সহ libMYFUNCS.sh নামে একটি লাইব্রেরির উদাহরণ রয়েছে:

#!/bin/bash 

#Function to clearly list directories in PATH 
showPATH() { 
        oldifs="$IFS"   #store old internal field separator
        IFS=:              #specify a new internal field separator
        for DIR in $PATH ;  do echo $DIR ;  done
        IFS="$oldifs"    #restore old internal field separator
}

#Function to show logged user
showUSERS() {
        echo -e “Below are the user logged on the system:\n”
        w
}

#Print a user’s details 
printUSERDETS() {
        oldifs="$IFS"    #store old internal field separator
        IFS=:                 #specify a new internal field separator
        read -p "Enter user name to be searched:" uname   #read username
        echo ""
       #read and store from a here string values into variables using : as  a  field delimiter
    read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep   "^$uname")"
       #print out captured values
        echo  -e "Username is            : $username\n"
        echo  -e "User's ID                 : $uid\n"
        echo  -e "User's GID              : $gid\n"
        echo  -e "User's Comments    : $comments\n"
        echo  -e "User's Home Dir     : $homedir\n"
        echo  -e "User's Shell             : $shell\n"
        IFS="$oldifs"         #store old internal field separator
}

ফাইলটি সংরক্ষণ করুন এবং স্ক্রিপ্টটি সম্পাদনযোগ্য করুন।

কিভাবে একটি লাইব্রেরি থেকে ফাংশন চাওয়া

একটি lib- এ কোনও ফাংশন ব্যবহার করতে, আপনাকে প্রথমে শেল স্ক্রিপ্টে lib অন্তর্ভুক্ত করতে হবে যেখানে ফাংশনটি নীচের ফর্মটিতে ব্যবহৃত হবে:

$ ./path/to/lib
OR
$ source /path/to/lib

সুতরাং আপনি নীচে প্রদর্শিত হিসাবে অন্য স্ক্রিপ্টে lib ~/lib/sh/libMYFUNCS.sh থেকে মুদ্রণযোগ্য USERDETS ফাংশনটি ব্যবহার করবেন।

কোনও নির্দিষ্ট ব্যবহারকারীর বিশদ মুদ্রণ করতে আপনাকে এই স্ক্রিপ্টে অন্য কোনও কোড লিখতে হবে না, কেবল একটি বিদ্যমান ফাংশনটি কল করুন।

টেস্ট.শ নামের সাথে একটি নতুন ফাইল খুলুন:

#!/bin/bash 

#include lib
.  ~/lib/sh/libMYFUNCS.sh

#use function from lib
printUSERDETS

#exit script
exit 0

এটি সংরক্ষণ করুন, তারপরে স্ক্রিপ্টটি সম্পাদনযোগ্য করুন এবং এটি চালান:

$ chmod 755 test.sh
$ ./test.sh 

এই নিবন্ধে, আমরা আপনাকে শেল স্ক্রিপ্টগুলি নির্ভরযোগ্যভাবে কোথায় সংরক্ষণ করতে হবে, কীভাবে আপনার নিজের শেল ফাংশন এবং গ্রন্থাগারগুলি লিখতে হবে, সাধারণ শেল স্ক্রিপ্টগুলিতে লাইব্রেরি থেকে ফাংশন প্রার্থনা করব।

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