Kako omogućiti način otklanjanja pogrešaka skripte ljuske u Linuxu


Skripta je jednostavno popis naredbi pohranjenih u datoteci. Umjesto pokretanja niza naredbi upisivanjem jednu po jednu cijelo vrijeme na terminalu, korisnik sustava ih sve (naredbe) može pohraniti u datoteku i opetovano pozivati datoteku kako bi nekoliko puta ponovno izvršio naredbe.

Dok učimo pisanje skripti ili tijekom ranih faza pisanja skripti, obično počinjemo pisanjem malih ili kratkih skripti s nekoliko redaka naredbi. I obično ispravljamo pogreške u takvim skriptama ne radeći ništa više nego gledajući njihov izlaz i osiguravajući da rade onako kako smo namjeravali.

Međutim, kad počnemo pisati vrlo duge i napredne skripte s tisućama redaka naredbi, na primjer skripte koje mijenjaju postavke sustava, izvode kritične sigurnosne kopije preko mreža i još mnogo toga, shvatit ćemo da samo gledanje izlaza skripte nije dovoljno za pronalaženje grešaka unutar skripte.

Stoga ćemo u ovoj seriji otklanjanja pogrešaka skripte ljuske u Linuxu proći kroz kako omogućiti otklanjanje pogrešaka skripte ljuske, objasniti različite načine otklanjanja pogrešaka skripte ljuske i kako ih koristiti u sljedećim serijama.

Kako pokrenuti skriptu

Skripta se od ostalih datoteka razlikuje po svom prvom redu koji sadrži #! (She-bang – definira vrstu datoteke) i naziv putanje (put do tumača) koji obavještava sustav da je datoteka zbirka naredbi koje će interpretirati navedeni program (interpreter).

Ispod su primjeri "prvih redaka" u različitim vrstama skripti:

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

Napomena: prvi red ili #! može se izostaviti ako skripta sadrži samo skup standardnih sistemskih naredbi, bez ikakvih internih shell direktive.

Kako izvršiti Shell skriptu u Linuxu

Konvencionalna sintaksa za pozivanje skripte ljuske je:

script_name  argument1 ... argumentN

Drugi mogući oblik je jasno određivanje ljuske koja će izvršiti skriptu kao što je prikazano u nastavku:

shell script_name argument1 ... argumentN  

Na primjer:

/bin/bash script_name argument1 ... argumentN     [For bash scripting]
/bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
/bin/sh script_name argument1 ... argumentN       [For sh scripting]

Za skripte koje nemaju #! kao prvi red i sadrže samo osnovne sistemske naredbe kao što je ova u nastavku:


#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

Jednostavno ga učinite izvršnim i pokrenite ga na sljedeći način:


chmod +x  script_name
./script_name 

Metode omogućavanja načina otklanjanja pogrešaka skripte ljuske

Ispod su primarne opcije otklanjanja pogrešaka skripte ljuske:

  1. -n (skraćenica za noexec ili no ecxecution) – daje instrukcije ljusci da pročita sve naredbe, ali ih ne izvršava. Ova opcija aktivira način provjere sintakse.
  2. -x (skraćenica za xtrace ili praćenje izvršenja) – govori ljusci da prikaže sve naredbe i njihove argumente na terminalu dok se izvršavaju. Ova opcija omogućuje način rada za praćenje ljuske.

1. Promjena prvog retka Shell skripte

Prvi mehanizam je izmjenom prvog retka skripte ljuske kao što je dolje, što će omogućiti otklanjanje pogrešaka cijele skripte.

#!/bin/sh option(s)

U gornjem obrascu opcija može biti jedna ili kombinacija gore navedenih opcija otklanjanja pogrešaka.

2. Pozivanje ljuske s opcijama otklanjanja pogrešaka

Drugi je pozivanjem ljuske s opcijama otklanjanja pogrešaka kako slijedi, ova će metoda također uključiti uklanjanje pogrešaka cijele skripte.

shell option(s) script_name argument1 ... argumentN

Na primjer:

/bin/bash option(s) script_name argument1 ... argumentN   

3. Korištenje ugrađene naredbe Set Shell

Treća metoda je korištenje ugrađene naredbe set za otklanjanje pogrešaka u određenom odjeljku skripte ljuske kao što je funkcija. Ovaj mehanizam je važan jer nam omogućuje aktiviranje otklanjanja pogrešaka u bilo kojem segmentu skripte ljuske.

Možemo uključiti način otklanjanja pogrešaka pomoću naredbe set u donjem obrascu, gdje je opcija bilo koja od opcija otklanjanja pogrešaka.

set option 

Da biste omogućili način otklanjanja pogrešaka, upotrijebite:

set -option

Da biste onemogućili način otklanjanja pogrešaka, upotrijebite:

set +option

Osim toga, ako smo omogućili nekoliko načina otklanjanja pogrešaka u različitim segmentima skripte ljuske, možemo ih sve odjednom onemogućiti na sljedeći način:

set -

To je to za sada s omogućavanjem načina otklanjanja pogrešaka skripte ljuske. Kao što smo vidjeli, možemo debugirati cijelu skriptu ljuske ili određeni dio skripte.

U sljedeće dvije epizode ove serije, obradit ćemo kako koristiti opcije otklanjanja pogrešaka skripte ljuske za objašnjenje opširnog, provjeru sintakse i otklanjanje pogrešaka praćenjem ljuske modovi s primjerima.

Važno je da ne zaboravite postaviti pitanja o ovom vodiču ili nam možda dati povratne informacije putem odjeljka za komentare u nastavku. Do tada ostanite povezani s Tecmintom.