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:
-
-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. -
-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. -
-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.