লিনাক্সে কার্যকর ব্যাশ স্ক্রিপ্ট লেখার জন্য 10 টিপস টিপস


স্বয়ংক্রিয় কাজগুলির জন্য সিস্টেম প্রশাসন, নতুন সাধারণ ইউটিলিটি/সরঞ্জামগুলি বিকাশ করার জন্য কেবল কয়েকটি উল্লেখযোগ্য।

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

1. সর্বদা স্ক্রিপ্টগুলিতে মন্তব্যগুলি ব্যবহার করুন

এটি একটি প্রস্তাবিত অনুশীলন যা কেবল শেল স্ক্রিপ্টিংয়ের ক্ষেত্রেই প্রয়োগ করা হয় না তবে অন্যান্য সকল প্রকারের প্রোগ্রামিংয়েও প্রয়োগ করা হয়। স্ক্রিপ্টে মন্তব্য লেখা আপনাকে বা আপনার স্ক্রিপ্টের মধ্য দিয়ে যাওয়া অন্য কেউ স্ক্রিপ্টের বিভিন্ন অংশগুলি কী তা বুঝতে সহায়তা করে।

প্রারম্ভিকদের জন্য, মন্তব্যগুলি # চিহ্ন ব্যবহার করে সংজ্ঞায়িত করা হয়।

#TecMint is the best site for all kind of Linux articles

২. ব্যর্থ হলে স্ক্রিপ্টের প্রস্থান করুন

কখনও কখনও বাশ কোনও নির্দিষ্ট কমান্ড ব্যর্থ হওয়ার পরেও স্ক্রিপ্ট চালানো চালিয়ে যেতে পারে, ফলে অন্যান্য স্ক্রিপ্টকে প্রভাবিত করে (অবশেষে যৌক্তিক ত্রুটি হতে পারে)। কোনও কমান্ড ব্যর্থ হলে কোনও স্ক্রিপ্ট থেকে বেরিয়ে আসতে নীচের লাইনটি ব্যবহার করুন:

#let script exit if a command fails
set -o errexit 
OR
set -e

৩. বাশ যখন অঘোষিত পরিবর্তনশীল ব্যবহার করে তখন স্ক্রিপ্টের প্রস্থান করুন

বাশ একটি অঘোষিত স্ক্রিপ্ট ব্যবহার করার চেষ্টা করতে পারে যা লজিকাল ত্রুটির কারণ হতে পারে। সুতরাং কোনও স্ক্রিপ্ট থেকে অঘোষিত ভেরিয়েবল ব্যবহার করার চেষ্টা করার সময় ব্যাশকে নির্দেশ দেওয়ার জন্য নিম্নলিখিত লাইনটি ব্যবহার করুন:

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

৪. ভেরিয়েবলগুলি উল্লেখ করার জন্য ডাবল উক্তি ব্যবহার করুন

রেফারেন্স করার সময় ডাবল কোট ব্যবহার করা (কোনও ভেরিয়েবলের মান ব্যবহার করা) শব্দের বিভাজন (শ্বেত স্পেস সম্পর্কিত) এবং অপ্রয়োজনীয় গ্লোববিং (ওয়াইল্ডকার্ড সনাক্তকরণ এবং প্রসারিত) রোধ করতে সহায়তা করে।

নীচের উদাহরণটি দেখুন:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

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

$ ./names.sh

৫. স্ক্রিপ্টগুলিতে ফাংশন ব্যবহার করুন

খুব ছোট স্ক্রিপ্টগুলি (কোডের কয়েকটি লাইন সহ) বাদে সর্বদা আপনার কোডটি মডুলারি করতে এবং স্ক্রিপ্টগুলি আরও পঠনযোগ্য এবং পুনরায় ব্যবহারযোগ্য করে তুলতে ফাংশনগুলি ব্যবহার করতে ভুলবেন না।

রচনা ফাংশনগুলির জন্য সিনট্যাক্সটি নিম্নরূপ:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

একক লাইন কোডের জন্য, প্রতিটি কমান্ডের পরে এই জাতীয় সমাপ্তি অক্ষর ব্যবহার করুন:

check_root(){ command1; command2; }

St. স্ট্রিং তুলনার জন্য == এর পরিবর্তে = ব্যবহার করুন

মনে রাখবেন যে == = এর প্রতিশব্দ, তাই স্ট্রিং তুলনার জন্য কেবল একটি একক = ব্যবহার করুন:

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. সাবস্টিটিউশনের জন্য উত্তরাধিকার ‘কমান্ড’ এর পরিবর্তে $(কমান্ড) ব্যবহার করুন

কমান্ড প্রতিস্থাপন একটি আউটপুট সহ একটি কমান্ড প্রতিস্থাপন করে। কমান্ড প্রতিস্থাপনের জন্য ব্যাককোট command "কমান্ড \" এর পরিবর্তে & # 36 (কমান্ড) ব্যবহার করুন।

এটি শেলচেক সরঞ্জাম দ্বারাও সুপারিশ করা হয় (শেল স্ক্রিপ্টগুলির জন্য সতর্কতা এবং পরামর্শগুলি দেখায়)। উদাহরণ স্বরূপ:

user=`echo “$UID”`
user=$(echo “$UID”)

8. স্ট্যাটিক ভেরিয়েবলগুলি ঘোষণার জন্য কেবল পঠনযোগ্য ব্যবহার করুন

একটি স্ট্যাটিক ভেরিয়েবল পরিবর্তন হয় না; একবারে এটি কোনও স্ক্রিপ্টে সংজ্ঞায়িত হয়ে গেলে এর মান পরিবর্তন করা যায় না:

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. পরিবেশের ভেরিয়েবলের জন্য বড় হাতের অক্ষর এবং কাস্টম ভেরিয়েবলগুলির জন্য লোয়ারকেস ব্যবহার করুন

সমস্ত বাশ এনভায়রনমেন্ট ভেরিয়েবলের নাম বড় হাতের অক্ষর দিয়ে করা হয়, সুতরাং ভেরিয়েবলের নামগুলি বাধা দিতে আপনার কাস্টম ভেরিয়েবলের নাম রাখতে ছোট হাতের অক্ষর ব্যবহার করুন:

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. সর্বদা দীর্ঘ স্ক্রিপ্টগুলির জন্য ডিবাগিং সম্পাদন করুন

আপনি যদি কয়েক হাজার লাইনের কোড সহ বাশ স্ক্রিপ্টগুলি লিখছেন তবে ত্রুটিগুলি খুঁজে পাওয়া দুঃস্বপ্ন হতে পারে may কোনও স্ক্রিপ্ট কার্যকর করার আগে জিনিসগুলি সহজেই ঠিক করতে কিছু ডিবাগিং সম্পাদন করুন। নীচে সরবরাহিত গাইডগুলি পড়ে এই পরামর্শটি আয়ত্ত করুন:

  1. লিনাক্সে শেল স্ক্রিপ্ট ডিবাগিং মোড কীভাবে সক্ষম করবেন
  2. শেল স্ক্রিপ্টগুলিতে ডিবাগিং মোড সিন্ট্যাক্স কীভাবে সম্পাদন করবেন
  3. li
  4. শেল ট্র্যাকিংয়ের সাহায্যে শেল স্ক্রিপ্টে কমান্ডগুলির কার্যনির্বাহীকরণ কীভাবে সনাক্ত করা যায়

এখানেই শেষ! ভাগ করার জন্য আপনার কাছে অন্য কোনও সেরা বাশ স্ক্রিপ্টিং অনুশীলন রয়েছে? যদি হ্যাঁ, তা করতে নীচের মন্তব্য ফর্মটি ব্যবহার করুন।