10 kasulikku nõuannet tõhusate Bash-skriptide kirjutamiseks Linuxis


süsteemiadministraator ülesannete automatiseerimiseks, uute lihtsate utiliitide/tööriistade väljatöötamiseks, et mainida vaid mõnda.

Selles artiklis jagame 10 kasulikku ja praktilist nõuannet tõhusate ja usaldusväärsete bash-skriptide kirjutamiseks ning need sisaldavad järgmist:

1. Kasutage skriptides alati kommentaare

See on soovitatav tava, mida rakendatakse mitte ainult shelliskriptide, vaid ka igasuguse muu programmeerimise puhul. Kommentaaride kirjutamine skripti abil aitab teil või mõnel teisel skripti läbi vaadata, mida skripti erinevad osad teevad.

Alustuseks määratakse kommentaarid märgi # abil.

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

2. Tehke skriptist väljumine, kui see ei õnnestu

Mõnikord võib bash jätkata skripti täitmist isegi siis, kui teatud käsk ebaõnnestub, mõjutades seeläbi ülejäänud skripti (võib lõpuks põhjustada loogilisi vigu). Skripti väljumiseks käsu nurjumisel kasutage allolevat rida:

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

3. Tehke skriptist väljumine, kui Bash kasutab deklareerimata muutujat

Bash võib proovida kasutada ka deklareerimata skripti, mis võib põhjustada loogikavea. Seetõttu kasutage järgmist rida, et anda bashile skriptist väljumine, kui ta üritab deklareerimata muutujat kasutada:

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

4. Kasutage muutujate võrdlemiseks tsitaate

Topelt jutumärkide kasutamine viitamise ajal (muutuja väärtuse kasutamine) aitab ära hoida sõnade lõhestamist (tühimärgi osas) ja tarbetut lobisemist (metamärkide tuvastamine ja laiendamine).

Vaadake allolevat näidet:

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

Salvestage fail ja väljuge, seejärel käivitage see järgmiselt:

$ ./names.sh

5. Kasutage skriptide funktsioone

Välja arvatud väga väikesed skriptid (mõne koodireaga), pidage alati meeles, et kasutage funktsioone koodi moduleerimiseks ning skriptide loetavamaks ja korduvkasutatavamaks muutmiseks.

Funktsioonide kirjutamise süntaks on järgmine:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Ühe rea koodi jaoks kasutage iga käsu järel lõpetamismärke järgmiselt:

check_root(){ command1; command2; }

6. Stringi võrdlusteks kasutage == asemel =

Pange tähele, et == on = sünonüüm, seetõttu kasutage stringide võrdlemiseks ainult ühte = , näiteks:

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

7. Kasutage asendamiseks pärandi ‘käsu’ asemel käsku $(command)

Käskude asendamine asendab käsu väljundiga. Kasutage käskude asendamiseks tagaklausete \\ "command \\" asemel & # 36 (command) .

Seda soovitab isegi shellchecki tööriist (näitab hoiatusi ja soovitusi shelliskriptide jaoks). Näiteks:

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

8. Kasutage staatiliste muutujate deklareerimiseks kirjutuskaitstud

Staatiline muutuja ei muutu; selle väärtust ei saa muuta, kui see on skriptis määratletud:

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

9. Keskkonna muutujate jaoks kasutage suurtähti ja kohandatud muutujate jaoks väiketähti

Kõik bashi keskkonnamuutujad on nimetatud suurtähtedega, seetõttu kasutage muutujate nimede konfliktide vältimiseks kohandatud muutujate nimetamiseks väiketähti:

#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. Tehke pikkade skriptide jaoks alati silumine

Kui kirjutate tuhandete koodiridadega bash-skripte, võib vigade leidmine muutuda õudusunenäoks. Asjade hõlpsaks parandamiseks enne skripti käivitamist tehke mõni silumine. Selle vihje õppimiseks lugege läbi allpool toodud juhendid:

  1. Kuidas lubada Shelli skripti silumisrežiim Linuxis
  2. Kuidas süntaksikontrolli režiimi silumisrežiimi kontrollida shelliskriptides
  3. Kuidas Shell-skriptis käskude täitmist jälgida Shelli jälitamisega

See on kõik! Kas teil on veel mõnda parimat bashi skriptimise tava, mida jagada? Kui jah, siis kasutage selleks allolevat kommentaarivormi.