Kā iespējot čaulas skriptu atkļūdošanas režīmu Linux


Skripts ir vienkārši failā saglabāto komandu saraksts. Tā vietā, lai palaistu komandu secību, visu laiku terminālā ierakstot tās pa vienam, sistēmas lietotājs var tās visas (komandas) saglabāt failā un atkārtoti izsaukt failu, lai vairākas reizes izpildītu komandas.

Apgūstot skriptu vai skriptu rakstīšanas sākumposmā, mēs parasti sākam rakstīt mazus vai īsus skriptus ar dažām komandu rindām. Mēs parasti atkļūdojam šādus skriptus, nedarot neko citu, kā tikai apskatot to iznākumu un nodrošinot, ka tie darbojas tā, kā mēs esam iecerējuši.

Tomēr, kad mēs sākam rakstīt ļoti garus un progresīvus skriptus ar tūkstošiem komandu rindu, piemēram, skriptus, kas maina sistēmas iestatījumus, veic kritiskas rezerves kopijas tīklā un daudz ko citu, mēs sapratīsim, ka tikai skripta izejas skatīšanās nav pietiekami, lai skriptā atrastu kļūdas.

Tāpēc šajā čaulas skripta atkļūdošanā Linux sērijā mēs iepazīsimies ar to, kā iespējot čaulas skripta atkļūdošanu, pārejam, lai izskaidrotu dažādos čaulas skriptu atkļūdošanas režīmus un kā tos izmantot nākamajās sērijās.

Kā sākt skriptu

Skripts no citiem failiem atšķiras ar tā pirmo rindu, kurā ir #! (She-bang - nosaka faila tipu) un ceļa nosaukumu (tulka ceļš), kas informē sistēmu, ka fails ir komandu kolekcija, kuru interpretēs norādītā programma (tulks).

Tālāk ir sniegti “pirmo rindiņu” piemēri dažāda veida skriptos:

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

Piezīme: Pirmo rindu vai #! var neņemt vērā, ja skriptā ir tikai standarta sistēmas komandu kopums bez iekšējām čaulas direktīvām.

Kā izpildīt čaulas skriptu Linux

Parastā sintakse, lai izsauktu čaulas skriptu, ir šāda:

$ script_name  argument1 ... argumentN

Vēl viena iespējamā forma ir skaidri norādīt apvalks, kas izpildīs skriptu, kā norādīts zemāk:

$ shell script_name argument1 ... argumentN  

Piemēram:

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

Skriptiem, kuru pirmā rinda nav #! un satur tikai pamata sistēmas komandas, piemēram, zemāk redzamo:

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

Vienkārši padariet to izpildāmu un palaidiet šādi:

$ chmod +x  script_name
$ ./script_name 

Shell Script atkļūdošanas režīma iespējošanas metodes

Zemāk ir galvenās čaulas skripta atkļūdošanas iespējas:

  1. -v (īss par vārdisku) - liek čaulai parādīt visas skripta rindas, kamēr tās tiek lasītas, tas aktivizē daudzveidīgo režīmu.
  2. -n (saīsinājums noexexec vai no ecxecution) - liek čaulai nolasīt visas komandas, taču tās neizpilda. Šī opcija aktivizē sintakses pārbaudes režīmu.
  3. -x (saīsinājums no xtrace vai izpildes izsekošanas) - liek čaulai parādīt visas komandas un to argumentus terminālā, kamēr tās tiek izpildītas. Šī opcija iespējo čaulas izsekošanas režīmu.

Pirmais mehānisms ir, mainot čaulas skripta pirmo rindu, kā norādīts zemāk, tas ļaus atkļūdot visu skriptu.

#!/bin/sh option(s)

Iepriekš redzamajā veidlapā opcija var būt viena vai iepriekš minēto atkļūdošanas opciju kombinācija.

Otrkārt, izsaucot čaulu ar atkļūdošanas iespējām šādi, šī metode ieslēgs arī visa skripta atkļūdošanu.

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

Piemēram:

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

Trešā metode ir iestatītās iebūvētās komandas izmantošana, lai atkļūdotu noteiktu čaulas skripta sadaļu, piemēram, funkciju. Šis mehānisms ir svarīgs, jo tas ļauj mums aktivizēt atkļūdošanu jebkurā čaulas skripta segmentā.

Mēs varam ieslēgt atkļūdošanas režīmu, izmantojot komandu Set zemāk redzamajā formā, kur opcija ir jebkura no atkļūdošanas opcijām.

$ set option 

Lai iespējotu atkļūdošanas režīmu, izmantojiet:

$ set -option

Lai atspējotu atkļūdošanas režīmu, izmantojiet:

$ set +option

Turklāt, ja mēs esam iespējojuši vairākus atkļūdošanas režīmus dažādos čaulas skripta segmentos, mēs varam tos visus atspējot uzreiz šādi:

$ set -

Tas tagad ir tas, ka iespējojat čaulas skriptu atkļūdošanas režīmu. Kā redzējām, mēs varam atkļūdot visu čaulas skriptu vai konkrētu skripta sadaļu.

Nākamajās divās šīs sērijas epizodēs mēs aplūkosim, kā izmantot čaulas skripta atkļūdošanas opcijas, lai ar piemēriem izskaidrotu verbose, sintakses pārbaudi un shell tracing atkļūdošanas režīmus.

Svarīgi ir tas, ka neaizmirstiet uzdot jautājumus par šo rokasgrāmatu vai, iespējams, sniegt mums atsauksmes, izmantojot komentāru sadaļu zemāk. Līdz tam uzturiet savienojumu ar Tecmint.