Kako v Linuxu omogočiti način odpravljanja napak v lupini


Skript je preprosto seznam ukazov, shranjenih v datoteki. Namesto da zaporedje ukazov zažene tako, da jih v terminalu ves čas vpisuje enega za drugim, lahko sistemski uporabnik shrani vse (ukaze) v datoteko in večkrat pokliče datoteko, da ukaze večkrat izvede.

Med učenjem skript ali v zgodnjih fazah pisanja skriptov običajno začnemo s pisanjem majhnih ali kratkih skriptov z nekaj vrsticami ukazov. Takšne skripte ponavadi odpravljamo tako, da ne delamo nič drugega kot samo gledamo njihov izhod in zagotovimo, da delujejo, kot smo predvideli.

Ko pa začnemo pisati zelo dolge in napredne skripte s tisoč vrstic ukazov, na primer skripte, ki spreminjajo sistemske nastavitve, izvajajo kritične varnostne kopije po omrežjih in še veliko več, bomo spoznali, da samo gledanje izhodnih podatkov skripta ni dovolj za iskanje napak v skriptu.

Zato bomo v tem odpravljanju napak skriptov lupine v seriji Linux sprehodili, kako omogočiti odpravljanje napak v lupinskem skriptu, razložili bomo različne načine odpravljanja napak skriptov lupine in kako jih uporabiti v naslednjih serijah.

Kako začeti skript

Skript se od drugih datotek razlikuje po prvi vrstici, ki vsebuje #! (She-bang - definira vrsto datoteke) in ime poti (pot do tolmača), ki sistem obvesti, da je datoteka je zbirka ukazov, ki jih bo interpretiral določeni program (tolmač).

Spodaj so primeri\"prvih vrstic" v različnih vrstah skriptov:

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

Opomba: Prva vrstica ali #! lahko izpustite, če skript vsebuje samo nabor standardnih sistemskih ukazov, brez kakršnih koli notranjih ukazov lupine.

Kako izvesti skript lupine v Linuxu

Običajna sintaksa za priklic skripte lupine je:

$ script_name  argument1 ... argumentN

Druga možna oblika je z jasno določitvijo lupine, ki bo izvedla skript, kot je prikazano spodaj:

$ shell script_name argument1 ... argumentN  

Na primer:

$ /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, ki nimajo #! kot prve vrstice in vsebujejo samo osnovne sistemske ukaze, kot je spodnji:

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

Preprosto ga naredite izvedljiv in ga zaženite na naslednji način:

$ chmod +x  script_name
$ ./script_name 

Metode za omogočanje načina odpravljanja napak v skriptu lupine

Spodaj so glavne možnosti odpravljanja napak skripta lupine:

  1. -v (okrajšava za verbose) - pove lupini, naj med branjem prikaže vse vrstice v skriptu, aktivira podroben način
  2. -n (okrajšava za noexec ali no excecution) - ukaz lupini prebere vse ukaze, vendar jih ne izvrši. Ta možnost aktivira način preverjanja skladnje.
  3. -x (okrajšava za xtrace ali sled izvajanja) - pove lupini, naj med izvajanjem prikaže vse ukaze in njihove argumente na terminalu. Ta možnost omogoča način sledenja lupine.

Prvi mehanizem je s spreminjanjem prve vrstice skripta lupine, kot je prikazano spodaj, kar bo omogočilo odpravljanje napak celotnega skripta.

#!/bin/sh option(s)

V zgornjem obrazcu je možnost lahko ena ali kombinacija zgornjih možnosti za odpravljanje napak.

Drugi je s sklicevanjem na lupino z možnostmi za odpravljanje napak, kot sledi, ta metoda bo vključila tudi odpravljanje napak celotnega skripta.

$ shell option(s) script_name argument1 ... argumentN

Na primer:

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

Tretja metoda je z uporabo vgrajenega ukaza set za razhroščevanje določenega odseka skripta lupine, kot je funkcija. Ta mehanizem je pomemben, saj nam omogoča aktiviranje odpravljanja napak v katerem koli segmentu skripta lupine.

Način za odpravljanje napak lahko vklopimo z ukazom set v spodnjem obrazcu, kjer je možnost katera koli od možnosti za odpravljanje napak.

$ set option 

Če želite omogočiti način za odpravljanje napak, uporabite:

$ set -option

Če želite onemogočiti način odpravljanja napak, uporabite:

$ set +option

Poleg tega, če smo v različnih segmentih skripte lupine omogočili več načinov za odpravljanje napak, lahko onemogočimo vse naenkrat tako:

$ set -

Za zdaj je vse to z omogočanjem načina odpravljanja napak skriptov lupine. Kot smo videli, lahko odpravimo napake v celotnem skriptu lupine ali določenem delu skripta.

V naslednjih dveh epizodah te serije bomo obravnavali, kako lahko z primeri uporabimo možnosti razhroščevanja skriptov lupine, da razložimo podrobne načine, preverjanje skladnje in odpravljanje napak pri sledenju lupine.

Pomembno je, da ne pozabite zastaviti kakršnih koli vprašanj glede tega vodnika ali nam morda poslati povratne informacije v spodnjem oddelku za komentarje. Do takrat ostanite povezani s Tecmintom.