Kif Tippermetti l-Modalità Debugging Shell Script fil-Linux


Skript huwa sempliċement lista ta 'kmandi maħżuna f'fajl. Minflok ma jmexxi sekwenza ta 'kmandi billi jittajpjahom wieħed wieħed il-ħin kollu fuq it-terminal, utent tas-sistema jista' jaħżenhom kollha (kmandi) f'fajl u ripetutament jinvoka l-fajl biex jerġa 'jwettaq il-kmandi diversi drabi.

Waqt li nitgħallmu skripts jew matul l-istadji bikrija tal-kitba ta 'skripts, normalment nibdew billi niktbu skripts żgħar jew qosra bi ftit linji ta' kmandi. U s-soltu niddebug skripts bħal dawn billi ma nagħmlu xejn aktar milli nħarsu lejn l-output tagħhom u niżguraw li jaħdmu kif ħsibna.

Madankollu, hekk kif nibdew niktbu skripts twal u avvanzati ħafna b'eluf ta' linji ta' kmandi, pereżempju skripts li jimmodifikaw is-settings tas-sistema, iwettqu backups kritiċi fuq netwerks u ħafna aktar, se nirrealizzaw li nħarsu biss lejn l-output ta' skript mhux. biżżejjed biex issib bugs fi skript.

Għalhekk, f'dan id-debugging tal-iskript tal-qoxra f'serje Linux, se nimxu permezz ta 'kif nippermettu d-debugging tal-iskript tal-qoxra, nimxu 'l fuq biex tispjega l-modi differenti tad-debugging tal-iskript tal-qoxra u kif tużahom fis-serje sussegwenti.

Kif Tibda Skript

Iskrittura hija distinta minn fajls oħra bl-ewwel linja tagħha, li fiha #! (She-bang – tiddefinixxi t-tip ta’ fajl) u isem ta’ mogħdija (mogħdija għall-interpretu) li tinforma lis-sistema li l-fajl hija ġabra ta 'kmandi li se jiġu interpretati mill-programm speċifikat (interpretu).

Hawn taħt hawn eżempji tal-\ewwel linji f'tipi differenti ta' skripts:

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

Nota: L-ewwel linja jew #! tista' titħalla barra jekk skript ikun fih biss sett ta' kmandi tas-sistema standard, mingħajr ebda direttiva interna tal-qoxra.

Kif Tesegwixxi Shell Script fil-Linux

Is-sintassi konvenzjonali għall-invokazzjoni ta' script shell hija:

$ script_name  argument1 ... argumentN

Forma oħra possibbli hija billi tispeċifika b'mod ċar il-qoxra li se tesegwixxi l-iskritt kif hawn taħt:

$ shell script_name argument1 ... argumentN  

Pereżempju:

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

Għal skripts li m'għandhomx #! bħala l-ewwel linja u li fihom biss kmandi bażiċi tas-sistema bħal dik ta' hawn taħt:

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

Sempliċement tagħmilha eżekutibbli u mexxiha kif ġej:

$ chmod +x  script_name
$ ./script_name 

Metodi ta 'Attivazzjoni tal-Modalità ta' Debugging Shell Script

Hawn taħt jinsabu l-għażliet primarji tad-debugging tal-iskript tal-qoxra:

  1. -v (qosor għal verbose) – jgħid lill-qoxra biex turi l-linji kollha fi skript waqt li jinqraw, jattiva l-mod verbose.
  2. -n (qosra għal noexec jew no exececution) – jagħti struzzjonijiet lill-qoxra taqra l-kmandi kollha, iżda ma tesegwixxihomx. Din l-għażla jattiva l-mod ta' verifika tas-sintassi.
  3. -x (qosor għal xtrace jew execution trace) – jgħid lill-qoxra biex turi l-kmandi kollha u l-argumenti tagħhom fuq it-terminal waqt li jkunu esegwiti. Din l-għażla tippermetti l-modalità tat-traċċar tal-qoxra.

L-ewwel mekkaniżmu huwa billi tbiddel l-ewwel linja ta 'skript tal-qoxra kif hawn taħt, dan se jippermetti d-debugging tal-iskript kollu.

#!/bin/sh option(s)

Fil-formola ta 'hawn fuq, l-għażla tista' tkun waħda jew kombinazzjoni tal-għażliet ta 'debugging ta' hawn fuq.

It-tieni huwa billi tinvoka l-qoxra b'għażliet ta 'debugging kif ġej, dan il-metodu se jixgħel ukoll id-debugging tal-iskritt kollu.

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

Pereżempju:

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

It-tielet metodu huwa billi tuża s-sett built-in kmand biex tiddibaggja sezzjoni partikolari ta 'script shell bħal funzjoni. Dan il-mekkaniżmu huwa importanti, peress li jippermettilna nattivaw id-debugging fi kwalunkwe segment ta 'script shell.

Nistgħu nixgħel il-mod ta 'debugging billi tuża kmand stabbilit fil-forma hawn taħt, fejn l-għażla hija kwalunkwe mill-għażliet ta' debugging.

$ set option 

Biex tippermetti l-mod ta' debugging, uża:

$ set -option

Biex tiddiżattiva l-mod ta' debugging, uża:

$ set +option

Barra minn hekk, jekk ippermettejna diversi modi ta 'debugging f'segmenti differenti ta' script tal-qoxra, nistgħu tiddiżattivahom kollha f'daqqa hekk:

$ set -

Dan huwa għalissa bl-abilitazzjoni tal-mod ta 'debugging tal-iskript tal-qoxra. Kif rajna, nistgħu jew niddibaggjaw script shell kollu jew sezzjoni partikolari ta 'kitba.

Fiż-żewġ episodji li jmiss ta 'din is-serje, se nkopru kif tuża l-għażliet ta' debugging tal-iskript tal-qoxra biex tispjega modi ta 'debugging verbose, verifika tas-sintassi u traċċar tal-qoxra b'eżempji.

Importanti, tinsiex tistaqsi xi mistoqsijiet dwar din il-gwida jew forsi tagħtina feedback permezz tat-taqsima tal-kummenti hawn taħt. Sa dakinhar, ibqgħu konnessi ma' Tecmint.