কম্পিউটার

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

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

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

শেল স্ক্রিপ্টগুলি কোথায় সংরক্ষণ করবেন

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

আপনার $PATH চেক করতে , নিচের কমান্ড জারি করে:

$ echo $PATH

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

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

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

$ mkdir ~/bin

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

$ mkdir -p ~/lib/sh 

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

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

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

function_name() { list of commands }

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

showDATE() {date;}

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

$ showDATE

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

নিচে libMYFUNCS.sh নামে একটি লাইব্রেরির উদাহরণ দেওয়া হল আমার ~/lib/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

তাই আপনি printUSERDETS ফাংশন ব্যবহার করবেন lib ~/lib/sh/libMYFUNCS.sh থেকে নিচে দেখানো অন্য স্ক্রিপ্টে।

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

test.sh নামের একটি নতুন ফাইল খুলুন :

#!/bin/bash 

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

#use function from lib
printUSERDETS

#exit script
exit 0
থেকে ~/lib/sh/libMYFUNCS.sh#use ফাংশন

এটি সংরক্ষণ করুন, তারপর স্ক্রিপ্টটিকে এক্সিকিউটেবল করুন এবং এটি চালান:

$ chmod 755 test.sh
$ ./test.sh 
কাস্টম শেল ফাংশন এবং লাইব্রেরিগুলি কীভাবে লিখবেন এবং ব্যবহার করবেন

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

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


  1. শেল স্ক্রিপ্টে ব্রেক এবং কন্টিনিউ স্টেটমেন্ট কিভাবে ব্যবহার করবেন

  2. আপনার শেল স্ক্রিপ্টে লুপ না হওয়া পর্যন্ত কীভাবে ব্যবহার করবেন

  3. শেল স্ক্রিপ্টিং এ Heredoc কিভাবে ব্যবহার করবেন

  4. আইওএস 13 এ NFC ট্যাগগুলি কীভাবে ব্যবহার করবেন, পড়তে এবং লিখবেন