Weboldal keresés

A Shell Script hibakeresési mód engedélyezése Linuxban


A szkript egyszerűen egy fájlban tárolt parancsok listája. Ahelyett, hogy egy parancssorozatot futtatna a terminálon egyenként begépelve, a rendszerfelhasználó mindegyiket (parancsot) eltárolhatja egy fájlban, és ismételten meghívja a fájlt a parancsok többszöri végrehajtásához.

A szkriptírás tanulása közben vagy a szkriptek írásának korai szakaszában általában kis vagy rövid szkriptek írásával kezdjük, néhány soros paranccsal. Az ilyen szkripteket pedig rendszerint úgy végezzük, hogy nem teszünk mást, mint megnézzük a kimenetüket, és biztosítjuk, hogy az általunk tervezett módon működjenek.

Amikor azonban elkezdünk nagyon hosszú és fejlett szkripteket írni több ezer parancssorral, például olyan szkripteket, amelyek módosítják a rendszerbeállításokat, kritikus biztonsági mentéseket hajtanak végre hálózaton keresztül és még sok más, rá fogunk jönni, hogy csak egy szkript kimenetét nézni nem elég ahhoz, hogy hibákat találjon a szkripten belül.

Ezért ebben a Linux-sorozatban a shell script hibakeresésben végig fogjuk járni, hogyan engedélyezhetjük a shell script hibakeresést, áttérünk a különböző shell script hibakeresési módok magyarázatára és azok használatára a következő sorozatokban.

Hogyan indítsunk el egy szkriptet

A szkriptet az első sora különbözteti meg a többi fájltól, amely egy #!-t (She-bang – meghatározza a fájltípust) és egy elérési utat (az értelmező elérési útja) tartalmaz. amely tájékoztatja a rendszert, hogy a fájl olyan parancsok gyűjteménye, amelyeket a megadott program (interpreter) értelmez.

Az alábbiakban példák találhatók a különböző típusú szkriptek „első soraira”:

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

Megjegyzés: Az első sor vagy a #! elhagyható, ha a szkript csak szabványos rendszerparancsokat tartalmaz, belső nélkül. shell direktívák.

Shell Script végrehajtása Linux alatt

A shell script meghívásának hagyományos szintaxisa a következő:

script_name  argument1 ... argumentN

Egy másik lehetséges forma a parancsfájlt végrehajtó parancsértelmező egyértelműen megadása az alábbiak szerint:

shell script_name argument1 ... argumentN  

Például:

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

Azoknál a szkripteknél, amelyeknek nem a #! az első sora, és csak alapvető rendszerparancsokat tartalmaznak, például az alábbit:


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

Egyszerűen tegye végrehajthatóvá, és futtassa az alábbiak szerint:


chmod +x  script_name
./script_name 

A Shell Script hibakeresési mód engedélyezésének módszerei

Alább láthatók az elsődleges shell-szkript hibakeresési beállításai:

  1. -n (a noexec vagy no ecxecution rövidítése) – utasítja a shellt, hogy olvassa el az összes parancsot, de nem hajtja végre azokat. Ez az opció aktiválja a szintaktikai ellenőrzési módot.
  2. -x (az xtrace vagy a execution trace rövidítése) – azt utasítja a shell-nek, hogy az összes parancsot és argumentumait jelenítse meg a terminálon végrehajtásuk közben. Ez az opció engedélyezi a shell nyomkövetési módot.

1. Shell Script első sorának módosítása

Az első mechanizmus egy shell szkript első sorának megváltoztatása az alábbiak szerint, ez lehetővé teszi a teljes szkript hibakeresését.

#!/bin/sh option(s)

A fenti űrlapon az opció lehet a fenti hibakeresési opciók egyike vagy kombinációja.

2. Shell meghívása hibakeresési opciókkal

A második a shell meghívása hibakeresési opciókkal az alábbiak szerint, ez a módszer a teljes szkript hibakeresését is bekapcsolja.

shell option(s) script_name argument1 ... argumentN

Például:

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

3. A set Shell Built-in Command használata

A harmadik módszer a set beépített paranccsal a héjszkript adott szakaszának, például függvénynek a hibakeresése. Ez a mechanizmus fontos, mivel lehetővé teszi a hibakeresés aktiválását a shell szkript bármely szegmensénél.

A hibakeresési módot a set paranccsal kapcsolhatjuk be az alábbi űrlapon, ahol a lehetőség a hibakeresési lehetőségek bármelyike.

set option 

A hibakeresési mód engedélyezéséhez használja:

set -option

A hibakeresési mód letiltásához használja:

set +option

Ezen túlmenően, ha több hibakeresési módot engedélyeztünk egy shell szkript különböző szegmenseiben, akkor az összeset egyszerre letilthatjuk, így:

set -

Egyelőre ennyi a shell script hibakeresési mód engedélyezésével. Amint láttuk, hibakeresést végezhetünk egy teljes shell-szkripten vagy a szkript egy bizonyos szakaszán.

A sorozat következő két epizódjában bemutatjuk, hogyan használhatjuk a shell script hibakeresési opcióit a részletes, a szintaktikai ellenőrzés és a shell tracing hibakeresés használatához. > módok példákkal.

Fontos, hogy ne felejtsen el kérdéseket feltenni ezzel az útmutatóval kapcsolatban, vagy esetleg visszajelzést adjon nekünk az alábbi megjegyzés részben. Addig is maradjon kapcsolatban a Tecminttel.