ലിനക്സിൽ ഫലപ്രദമായ ബാഷ് സ്ക്രിപ്റ്റുകൾ എഴുതുന്നതിനുള്ള 10 ഉപയോഗപ്രദമായ നുറുങ്ങുകൾ


ടാസ്uക്കുകൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിനുള്ള സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ, പുതിയ ലളിതമായ യൂട്ടിലിറ്റികൾ/ഉപകരണങ്ങൾ വികസിപ്പിക്കുക, എന്നാൽ ചിലത്.

ഈ ലേഖനത്തിൽ, ഫലപ്രദവും വിശ്വസനീയവുമായ ബാഷ് സ്ക്രിപ്റ്റുകൾ എഴുതുന്നതിനുള്ള ഉപയോഗപ്രദവും പ്രായോഗികവുമായ 10 നുറുങ്ങുകൾ ഞങ്ങൾ പങ്കിടും, അവയിൽ ഉൾപ്പെടുന്നു:

1. സ്ക്രിപ്റ്റുകളിൽ എല്ലായ്പ്പോഴും അഭിപ്രായങ്ങൾ ഉപയോഗിക്കുക

ഇത് ഷെൽ സ്ക്രിപ്റ്റിംഗിൽ മാത്രമല്ല, മറ്റെല്ലാ തരത്തിലുള്ള പ്രോഗ്രാമിംഗിലും പ്രയോഗിക്കപ്പെടുന്ന ഒരു ശുപാർശിത സമ്പ്രദായമാണ്. ഒരു സ്uക്രിപ്റ്റിൽ അഭിപ്രായങ്ങൾ എഴുതുന്നത് സ്uക്രിപ്റ്റിന്റെ വ്യത്യസ്uത ഭാഗങ്ങൾ എന്താണ് ചെയ്യുന്നതെന്ന് മനസിലാക്കാൻ നിങ്ങളെയോ അല്ലെങ്കിൽ നിങ്ങളുടെ സ്uക്രിപ്റ്റിലൂടെ പോകുന്ന മറ്റാരെയോ സഹായിക്കുന്നു.

തുടക്കക്കാർക്കായി, # ചിഹ്നം ഉപയോഗിച്ചാണ് കമന്റുകൾ നിർവചിക്കുന്നത്.

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

2. പരാജയപ്പെടുമ്പോൾ ഒരു സ്ക്രിപ്റ്റ് എക്സിറ്റ് ഉണ്ടാക്കുക

ഒരു നിശ്ചിത കമാൻഡ് പരാജയപ്പെടുമ്പോൾ പോലും ചിലപ്പോൾ ബാഷ് ഒരു സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യുന്നത് തുടരാം, അങ്ങനെ ബാക്കി സ്ക്രിപ്റ്റിനെ ബാധിക്കും (അവസാനം ലോജിക്കൽ പിശകുകൾക്ക് കാരണമായേക്കാം). ഒരു കമാൻഡ് പരാജയപ്പെടുമ്പോൾ ഒരു സ്ക്രിപ്റ്റിൽ നിന്ന് പുറത്തുകടക്കാൻ താഴെയുള്ള വരി ഉപയോഗിക്കുക:

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

3. ബാഷ് പ്രഖ്യാപിക്കാത്ത വേരിയബിൾ ഉപയോഗിക്കുമ്പോൾ ഒരു സ്ക്രിപ്റ്റ് എക്സിറ്റ് ഉണ്ടാക്കുക

ഒരു ലോജിക്കൽ പിശകിന് കാരണമായേക്കാവുന്ന ഒരു പ്രഖ്യാപിക്കാത്ത സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാനും ബാഷ് ശ്രമിച്ചേക്കാം. അതിനാൽ, ഒരു അൺഡിക്ലെയർ വേരിയബിൾ ഉപയോഗിക്കാൻ ശ്രമിക്കുമ്പോൾ, ഒരു സ്ക്രിപ്റ്റിൽ നിന്ന് പുറത്തുകടക്കാൻ ബാഷിനോട് നിർദ്ദേശിക്കാൻ ഇനിപ്പറയുന്ന വരി ഉപയോഗിക്കുക:

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

4. വേരിയബിളുകൾ റഫറൻസ് ചെയ്യാൻ ഇരട്ട ഉദ്ധരണികൾ ഉപയോഗിക്കുക

റഫറൻസ് ചെയ്യുമ്പോൾ ഇരട്ട ഉദ്ധരണികൾ ഉപയോഗിക്കുന്നത് (ഒരു വേരിയബിളിന്റെ മൂല്യം ഉപയോഗിക്കുന്നത്) പദ വിഭജനവും (വെളുത്ത ഇടം സംബന്ധിച്ച്) അനാവശ്യ ഗ്ലോബിംഗും (വൈൽഡ് കാർഡുകൾ തിരിച്ചറിയുകയും വികസിപ്പിക്കുകയും ചെയ്യുന്നു) തടയാൻ സഹായിക്കുന്നു.

ചുവടെയുള്ള ഉദാഹരണം പരിശോധിക്കുക:

#!/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

5. സ്ക്രിപ്റ്റുകളിൽ ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുക

വളരെ ചെറിയ സ്ക്രിപ്റ്റുകൾ ഒഴികെ (കോഡിന്റെ ഏതാനും വരികൾ), നിങ്ങളുടെ കോഡ് മോഡുലാറൈസ് ചെയ്യുന്നതിനും സ്ക്രിപ്റ്റുകൾ കൂടുതൽ വായിക്കാവുന്നതും പുനരുപയോഗിക്കാവുന്നതുമാക്കുന്നതിനും ഫംഗ്ഷനുകൾ ഉപയോഗിക്കാൻ എപ്പോഴും ഓർക്കുക.

ഫംഗ്uഷനുകൾ എഴുതുന്നതിനുള്ള വാക്യഘടന ഇപ്രകാരമാണ്:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

സിംഗിൾ ലൈൻ കോഡിനായി, ഓരോ കമാൻഡിനും ശേഷം ഇതുപോലുള്ള ടെർമിനേഷൻ പ്രതീകങ്ങൾ ഉപയോഗിക്കുക:

check_root(){ command1; command2; }

6. സ്ട്രിംഗ് താരതമ്യത്തിന് == എന്നതിന് പകരം = ഉപയോഗിക്കുക

== എന്നത് = എന്നതിന്റെ പര്യായമാണ്, അതിനാൽ സ്ട്രിംഗ് താരതമ്യത്തിനായി ഒരൊറ്റ = മാത്രം ഉപയോഗിക്കുക, ഉദാഹരണത്തിന്:

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

7. സബ്സ്റ്റിറ്റ്യൂഷനുവേണ്ടി ലെഗസി 'കമാൻഡിന്' പകരം $(കമാൻഡ്) ഉപയോഗിക്കുക

കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ ഒരു കമാൻഡിനെ അതിന്റെ ഔട്ട്പുട്ട് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. കമാൻഡ് മാറ്റിസ്ഥാപിക്കുന്നതിനായി ബാക്ക്uക്വോട്ടുകൾക്ക് പകരം \കമാൻഡ്\ $ (കമാൻഡ്) ഉപയോഗിക്കുക.

ഷെൽ ചെക്ക് ടൂൾ പോലും ഇത് ശുപാർശ ചെയ്യുന്നു (ഷെൽ സ്ക്രിപ്റ്റുകൾക്കുള്ള മുന്നറിയിപ്പുകളും നിർദ്ദേശങ്ങളും കാണിക്കുന്നു). ഉദാഹരണത്തിന്:

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

8. സ്റ്റാറ്റിക് വേരിയബിളുകൾ പ്രഖ്യാപിക്കാൻ റീഡ്-ഓൺലി ഉപയോഗിക്കുക

ഒരു സ്റ്റാറ്റിക് വേരിയബിൾ മാറില്ല; ഒരു സ്ക്രിപ്റ്റിൽ നിർവചിച്ചാൽ അതിന്റെ മൂല്യം മാറ്റാൻ കഴിയില്ല:

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

9. പരിസ്ഥിതി വേരിയബിളുകൾക്ക് വലിയക്ഷര നാമങ്ങളും ഇഷ്uടാനുസൃത വേരിയബിളുകൾക്ക് ചെറിയക്ഷരവും ഉപയോഗിക്കുക

എല്ലാ ബാഷ് എൻവയോൺമെന്റ് വേരിയബിളുകളും വലിയക്ഷരങ്ങൾ ഉപയോഗിച്ചാണ് പേരിട്ടിരിക്കുന്നത്, അതിനാൽ വേരിയബിൾ നെയിം വൈരുദ്ധ്യങ്ങൾ ഒഴിവാക്കാൻ നിങ്ങളുടെ ഇഷ്uടാനുസൃത വേരിയബിളുകൾക്ക് പേരിടാൻ ചെറിയക്ഷരങ്ങൾ ഉപയോഗിക്കുക:

#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. ദൈർഘ്യമേറിയ സ്ക്രിപ്റ്റുകൾക്കായി എല്ലായ്പ്പോഴും ഡീബഗ്ഗിംഗ് നടത്തുക

ആയിരക്കണക്കിന് കോഡുകളുള്ള ബാഷ് സ്ക്രിപ്റ്റുകൾ നിങ്ങൾ എഴുതുകയാണെങ്കിൽ, പിശകുകൾ കണ്ടെത്തുന്നത് ഒരു പേടിസ്വപ്നമായി മാറിയേക്കാം. ഒരു സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനുമുമ്പ് കാര്യങ്ങൾ എളുപ്പത്തിൽ പരിഹരിക്കുന്നതിന്, കുറച്ച് ഡീബഗ്ഗിംഗ് നടത്തുക. ചുവടെ നൽകിയിരിക്കുന്ന ഗൈഡുകളിലൂടെ വായിച്ചുകൊണ്ട് ഈ നുറുങ്ങ് മാസ്റ്റർ ചെയ്യുക:

  1. ലിനക്സിൽ ഷെൽ സ്ക്രിപ്റ്റ് ഡീബഗ്ഗിംഗ് മോഡ് എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം
  2. ഷെൽ സ്uക്രിപ്റ്റുകളിൽ സിന്റാക്uസ് ചെക്കിംഗ് ഡീബഗ്ഗിംഗ് മോഡ് എങ്ങനെ നടത്താം
  3. ഷെൽ ട്രേസിംഗ് ഉപയോഗിച്ച് ഷെൽ സ്uക്രിപ്റ്റിലെ കമാൻഡുകളുടെ എക്uസിക്യൂഷൻ എങ്ങനെ കണ്ടെത്താം

അത്രയേയുള്ളൂ! നിങ്ങൾക്ക് പങ്കിടാൻ മറ്റെന്തെങ്കിലും മികച്ച ബാഷ് സ്ക്രിപ്റ്റിംഗ് രീതികൾ ഉണ്ടോ? അതെ എങ്കിൽ, അത് ചെയ്യാൻ താഴെയുള്ള കമന്റ് ഫോം ഉപയോഗിക്കുക.