Kuinka ottaa Shell Script -virheenkorjaustila käyttöön Linuxissa


Skripti on yksinkertaisesti luettelo tiedostoon tallennetuista komennoista. Sen sijaan, että järjestelmän käyttäjä suorittaisi komentosarjaa kirjoittamalla ne yksitellen koko ajan päätelaitteessa, järjestelmän käyttäjä voi tallentaa ne kaikki (komennot) tiedostoon ja pyytää tiedostoa toistuvasti suorittamaan komennot uudelleen useita kertoja.

Kun opetellaan komentosarjoja tai skriptien kirjoittamisen alkuvaiheessa, aloitamme yleensä kirjoittamalla pieniä tai lyhyitä skriptejä, joissa on muutama komentorivi. Ja me yleensä korjaamme tällaisia komentosarjoja tekemällä mitään muuta kuin tarkastelemalla niiden tulosta ja varmistamalla, että ne toimivat tarkoitetulla tavalla.

Kuitenkin, kun alamme kirjoittaa erittäin pitkiä ja edistyneitä skriptejä, joissa on tuhansia komentorivejä, esimerkiksi komentosarjoja, jotka muokkaavat järjestelmäasetuksia, tekevät kriittisiä varmuuskopioita verkkojen kautta ja paljon muuta, ymmärrämme, että vain komentosarjan tulosteen katsominen ei ole tarpeeksi löytää virheitä skriptistä.

Siksi tässä komentotulkkikomentosarjan virheenkorjauksessa Linux-sarjassa käymme läpi, kuinka komentotulkkikomentosarjojen virheenkorjaus otetaan käyttöön, selitetään eri shell-skriptien virheenkorjaustilat ja kuinka niitä käytetään myöhemmissä sarjoissa.

Skriptin aloittaminen

Skripti erottuu muista tiedostoista sen ensimmäisellä rivillä, joka sisältää #! (She-bang – määrittää tiedostotyypin) ja polun nimen (polku tulkkiin) joka ilmoittaa järjestelmälle, että tiedosto on kokoelma komentoja, jotka määritetty ohjelma (tulkki) tulkitsee.

Alla on esimerkkejä "ensimmäisistä riveistä" erityyppisissä skripteissä:

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

Huomaa: ensimmäinen rivi tai #! voidaan jättää pois, jos komentosarja sisältää vain joukon vakiojärjestelmäkomentoja ilman sisäisiä kuoridirektiivit.

Shell-komentosarjan suorittaminen Linuxissa

Perinteinen syntaksi komentotulkkikomentosarjan kutsumiselle on:

script_name  argument1 ... argumentN

Toinen mahdollinen muoto on määrittää selkeästi komentotulkki, joka suorittaa komentosarjan seuraavasti:

shell script_name argument1 ... argumentN  

Esimerkiksi:

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

Komentosarjat, joiden ensimmäisellä rivillä ei ole #! ja jotka sisältävät vain järjestelmän peruskomentoja, kuten alla olevan:


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

Tee siitä vain suoritettava ja suorita se seuraavasti:


chmod +x  script_name
./script_name 

Shell Script -virheenkorjaustilan käyttöönottomenetelmät

Alla on ensisijaiset komentotulkkikomentosarjan virheenkorjausvaihtoehdot:

  1. -n (lyhenne sanoista noexec tai no ecxecution) – käskee komentotulkkia lukemaan kaikki komennot, mutta ei kuitenkaan suorita niitä. Tämä vaihtoehto aktivoi syntaksintarkistustilan.
  2. -x (lyhenne sanoista xtrace tai execution trace) – käskee komentotulkkia näyttämään kaikki komennot ja niiden argumentit päätteessä, kun niitä suoritetaan. Tämä vaihtoehto ottaa käyttöön komentotulkkien jäljitystilan.

1. Shell-komentosarjan ensimmäisen rivin muokkaaminen

Ensimmäinen mekanismi on muuttaa komentotulkkikomentosarjan ensimmäistä riviä alla kuvatulla tavalla. Tämä mahdollistaa koko skriptin virheenkorjauksen.

#!/bin/sh option(s)

Yllä olevassa lomakkeessa vaihtoehto voi olla yksi yllä olevista virheenkorjausvaihtoehdoista tai niiden yhdistelmä.

2. Shellin kutsuminen virheenkorjausvaihtoehdoilla

Toinen on kutsumalla komentotulkki virheenkorjausvaihtoehdoilla seuraavasti, tämä menetelmä ottaa myös koko skriptin virheenkorjauksen käyttöön.

shell option(s) script_name argument1 ... argumentN

Esimerkiksi:

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

3. Käytä set Shell Built-in Command -komentoa

Kolmas tapa on käyttää set sisäänrakennettua komentoa virheenkorjaukseen shell-skriptin tietyn osan, kuten funktion, virheenkorjaukseen. Tämä mekanismi on tärkeä, koska sen avulla voimme aktivoida virheenkorjauksen missä tahansa komentosarjan segmentissä.

Voimme ottaa virheenkorjaustilan käyttöön käyttämällä set-komentoa alla olevassa muodossa, jossa vaihtoehto on mikä tahansa virheenkorjausvaihtoehto.

set option 

Ota virheenkorjaustila käyttöön käyttämällä:

set -option

Voit poistaa virheenkorjaustilan käytöstä seuraavasti:

set +option

Lisäksi, jos olemme ottaneet käyttöön useita virheenkorjaustiloja shell-skriptin eri osissa, voimme poistaa ne kaikki käytöstä kerralla seuraavasti:

set -

Siinä se nyt, kun otat käyttöön shell-skriptin virheenkorjaustilan. Kuten olemme nähneet, voimme joko korjata koko komentosarjan tai tietyn osan skriptistä.

Tämän sarjan kahdessa seuraavassa jaksossa käsittelemme komentotulkkikomentosarjan virheenkorjausvaihtoehtojen selittämistä, syntaksin tarkistusta ja shell tracing -virheenkorjausta. > tilat esimerkein.

Tärkeää on, älä unohda esittää kysymyksiä tästä oppaasta tai kenties antaa meille palautetta alla olevan kommenttiosion kautta. Siihen asti pysy yhteydessä Tecmintiin.