লিনাক্সে, শেল স্ক্রিপ্টগুলি আমাদেরকে বিভিন্ন উপায়ে সাহায্য করে যার মধ্যে কিছু সিস্টেম অ্যাডমিনিস্ট্রেশনের কাজগুলি সম্পাদন করা বা এমনকি স্বয়ংক্রিয় করা, সাধারণ কমান্ড লাইন টুল তৈরি করা এবং আরও অনেক কিছু।
এই নির্দেশিকায়, আমরা নতুন লিনাক্স ব্যবহারকারীদের দেখাব যেখানে কাস্টম শেল স্ক্রিপ্টগুলি নির্ভরযোগ্যভাবে সঞ্চয় করতে হবে, কীভাবে কাস্টম শেল ফাংশন এবং লাইব্রেরি লিখতে হবে, অন্যান্য স্ক্রিপ্টগুলিতে লাইব্রেরি থেকে ফাংশনগুলি ব্যবহার করতে হবে তা ব্যাখ্যা করব৷
শেল স্ক্রিপ্টগুলি কোথায় সংরক্ষণ করবেন
একটি সম্পূর্ণ/পরম পাথ টাইপ না করে আপনার স্ক্রিপ্টগুলি চালানোর জন্য, সেগুলিকে অবশ্যই $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 এর সাথে সংযুক্ত থাকুন এবং নীচের প্রতিক্রিয়া ফর্মের মাধ্যমে এই নির্দেশিকা সম্পর্কে আপনার চিন্তাভাবনা শেয়ার করুন৷