Slik aktiverer du Shell Script Debugging Mode i Linux


Et skript er ganske enkelt en liste over kommandoer som er lagret i en fil. I stedet for å kjøre en sekvens med kommandoer ved å skrive dem én etter én hele tiden på terminalen, kan en systembruker lagre alle (kommandoer) i en fil og gjentatte ganger påkalle filen for å utføre kommandoene på nytt flere ganger.

Mens vi lærer skript eller i de tidlige stadiene av å skrive skript, starter vi vanligvis med å skrive små eller korte skript med noen få kommandolinjer. Og vi feilsøker vanligvis slike skript ved ikke å gjøre noe mer enn å se på utdataene og sørge for at de fungerer slik vi hadde tenkt.

Men når vi begynner å skrive veldig lange og avanserte skript med tusenvis av kommandolinjer, for eksempel skript som endrer systeminnstillinger, utfører kritiske sikkerhetskopier over nettverk og mange flere, vil vi innse at det bare å se på utdataene til et skript ikke er det. nok til å finne feil i et skript.

Derfor, i denne shell script debugging i Linux-serien, vil vi gå gjennom hvordan du aktiverer shell script debugging, flytte over for å forklare de forskjellige shell script feilsøkingsmodusene og hvordan du bruker dem i den påfølgende serien.

Hvordan starte et skript

Et skript skiller seg fra andre filer ved sin første linje, som inneholder en #! (She-bang – definerer filtypen) og et banenavn (bane til tolk) som informerer systemet om at filen er en samling kommandoer som vil bli tolket av det angitte programmet (tolken).

Nedenfor er eksempler på de "første linjene" i forskjellige typer skript:

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

Merk: Den første linjen eller #! kan utelates hvis et skript bare inneholder et sett med standard systemkommandoer, uten noen interne shell-direktiver.

Slik kjører du et Shell-skript i Linux

Den konvensjonelle syntaksen for å påkalle et skallskript er:

script_name  argument1 ... argumentN

En annen mulig form er å tydelig spesifisere skallet som skal utføre skriptet som nedenfor:

shell script_name argument1 ... argumentN  

For eksempel:

/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]

For skript som ikke har #! som første linje og bare inneholder grunnleggende systemkommandoer som den nedenfor:


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

Gjør den kjørbar og kjør den som følger:


chmod +x  script_name
./script_name 

Metoder for å aktivere Shell Script Debugging Mode

Nedenfor er de primære shell-skriptfeilsøkingsalternativene:

  1. -n (forkortelse for noexec eller ingen ecxecution) – instruerer skallet til å lese alle kommandoene, men utfører dem ikke. Dette alternativet aktiverer syntakskontrollmodus.
  2. -x (forkortelse for xtrace eller execution trace) – forteller skallet å vise alle kommandoer og deres argumenter på terminalen mens de utføres. Dette alternativet aktiverer skallsporingsmodus.

1. Endre den første linjen i et Shell-skript

Den første mekanismen er ved å endre den første linjen i et skallskript som nedenfor, dette vil muliggjøre feilsøking av hele skriptet.

#!/bin/sh option(s)

I skjemaet ovenfor kan alternativet være ett eller en kombinasjon av feilsøkingsalternativene ovenfor.

2. Påkalle Shell med feilsøkingsalternativer

Den andre er ved å påkalle skallet med feilsøkingsalternativer som følger, denne metoden vil også slå på feilsøking av hele skriptet.

shell option(s) script_name argument1 ... argumentN

For eksempel:

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

3. Bruke set Shell Built-in Command

Den tredje metoden er å bruke den innebygde set-kommandoen for å feilsøke en gitt del av et skallskript, for eksempel en funksjon. Denne mekanismen er viktig, siden den lar oss aktivere feilsøking ved et hvilket som helst segment av et skallskript.

Vi kan slå på feilsøkingsmodus ved å bruke sett-kommandoen i skjemaet nedenfor, der alternativet er et av feilsøkingsalternativene.

set option 

For å aktivere feilsøkingsmodus, bruk:

set -option

For å deaktivere feilsøkingsmodus, bruk:

set +option

I tillegg, hvis vi har aktivert flere feilsøkingsmoduser i forskjellige segmenter av et skallskript, kan vi deaktivere dem alle samtidig slik:

set -

Det er det for nå med aktivering av shell script debugging-modus. Som vi har sett, kan vi enten feilsøke et helt skallskript eller en bestemt del av et skript.

I de neste to episodene av denne serien vil vi dekke hvordan du bruker skjellskriptfeilsøkingsalternativene for å forklare detaljert, syntakskontroll og skallsporingsfeilsøking > moduser med eksempler.

Viktigere, ikke glem å stille spørsmål om denne veiledningen eller kanskje gi oss tilbakemelding gjennom kommentarfeltet nedenfor. Inntil da, hold kontakten med Tecmint.