10 korisnih savjeta za pisanje učinkovitih Bash skripti u Linuxu


Shell skriptiranje je najlakši oblik programiranja koji možete naučiti/raditi u Linuxu. Štoviše, to je potrebna vještina za administraciju sustava za automatizaciju zadataka, razvoj novih jednostavnih uslužnih programa/alata da spomenemo samo neke.

U ovom ćemo članku podijeliti 10 korisnih i praktičnih savjeta za pisanje učinkovitih i pouzdanih bash skripti, a oni uključuju:

1. Uvijek koristite komentare u skriptama

Ovo je preporučena praksa koja se ne primjenjuje samo na skriptiranje ljuske već i na sve druge vrste programiranja. Pisanje komentara u skriptu pomaže vama ili nekom drugom tko prolazi kroz vašu skriptu da shvatite što različiti dijelovi skripte rade.

Za početak, komentari su definirani pomoću znaka #.

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

2. Napravite izlaz skripte kada ne uspije

Ponekad bash može nastaviti izvršavati skriptu čak i kada određena naredba ne uspije, što utječe na ostatak skripte (na kraju može rezultirati logičkim pogreškama). Upotrijebite donji redak za izlaz iz skripte kada naredba ne uspije:

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

3. Napravite izlaz iz skripte kada Bash koristi nedeklarisanu varijablu

Bash također može pokušati upotrijebiti nedeklarisanu skriptu koja bi mogla uzrokovati logičku pogrešku. Stoga koristite sljedeći redak da uputite bash da izađe iz skripte kada pokuša upotrijebiti nedeklarisanu varijablu:

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

4. Koristite dvostruke navodnike za pozivanje na varijable

Korištenje dvostrukih navodnika tijekom referenciranja (korištenje vrijednosti varijable) pomaže u sprječavanju dijeljenja riječi (u vezi s razmakom) i nepotrebnog globbiranja (prepoznavanje i proširivanje zamjenskih znakova).

Pogledajte primjer u nastavku:

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

Spremite datoteku i izađite, a zatim je pokrenite na sljedeći način:

./names.sh

5. Koristite funkcije u skriptama

Osim za vrlo male skripte (s nekoliko redaka koda), uvijek imajte na umu da koristite funkcije za modularizaciju vašeg koda i da skripte budu čitljivije i višekratno upotrebljive.

Sintaksa za pisanje funkcija je sljedeća:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Za jednoredni kod, koristite znakove završetka nakon svake naredbe ovako:

check_root(){ command1; command2; }

6. Koristite=umjesto == za usporedbe nizova

Imajte na umu da je == sinonim za =, stoga koristite samo jedan = za usporedbe nizova, na primjer:

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

7. Koristite $ (naredba) umjesto naslijeđene 'naredbe' za zamjenu

Zamjena naredbe zamjenjuje naredbu njezinim izlazom. Koristite $ (naredba) umjesto povratnih navodnika `command` za zamjenu naredbe.

Ovo preporučuje čak i shellcheck alat (prikazuje upozorenja i prijedloge za shell skripte). Na primjer:

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

8. Koristite opciju samo za čitanje za deklariranje statičkih varijabli

Statička varijabla se ne mijenja; njegova se vrijednost ne može mijenjati nakon što je definirana u skripti:

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

9. Koristite imena velikim slovima za varijable OKOLIŠA i mala slova za prilagođene varijable

Sve varijable okruženja bash nazivaju se velikim slovima, stoga koristite mala slova za imenovanje prilagođenih varijabli kako biste izbjegli sukobe imena varijabli:

#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. Uvijek izvodite otklanjanje pogrešaka za duge skripte

Ako pišete bash skripte s tisućama redaka koda, pronalaženje pogrešaka može postati noćna mora. Kako biste jednostavno popravili stvari prije izvršavanja skripte, obavite otklanjanje pogrešaka. Savladajte ovaj savjet čitajući dolje navedene vodiče:

  1. Kako omogućiti način otklanjanja pogrešaka skripte ljuske u Linuxu
  2. Kako izvršiti način otklanjanja pogrešaka provjere sintakse u skriptama ljuske
  3. Kako pratiti izvršenje naredbi u Shell Scriptu pomoću Shell Tracinga

To je sve! Imate li neke druge najbolje prakse bash skriptiranja za podijeliti? Ako da, upotrijebite obrazac za komentare u nastavku da to učinite.