Vyhledávání na webu

Jak povolit režim ladění skriptů Shell v systému Linux


Skript je jednoduše seznam příkazů uložených v souboru. Namísto spouštění posloupnosti příkazů jejich neustálým psaním jeden po druhém na terminálu je může uživatel systému uložit všechny (příkazy) do souboru a opakovaně soubor vyvolávat, aby příkazy několikrát znovu provedl.

Při učení skriptování nebo v raných fázích psaní skriptů obvykle začínáme psaním malých nebo krátkých skriptů s několika řádky příkazů. A takové skripty obvykle ladíme tak, že neděláme nic jiného, než že se díváme na jejich výstup a zajišťujeme, aby fungovaly tak, jak jsme zamýšleli.

Jakmile však začneme psát velmi dlouhé a pokročilé skripty s tisíci řádky příkazů, například skripty, které upravují systémová nastavení, provádějí kritické zálohy přes sítě a mnoho dalších, uvědomíme si, že pouze pohled na výstup skriptu není dost k nalezení chyb ve skriptu.

Proto v tomto ladění skriptů shellu v sérii Linux projdeme, jak povolit ladění skriptů shellu, přejdeme k vysvětlení různých režimů ladění skriptů shellu a jak je používat v následující sérii.

Jak spustit skript

Skript se od ostatních souborů odlišuje prvním řádkem, který obsahuje #! (She-bang – definuje typ souboru) a název cesty (cesta k interpretu) který informuje systém, že soubor je kolekcí příkazů, které budou interpretovány zadaným programem (interpretem).

Níže jsou uvedeny příklady „prvních řádků“ v různých typech skriptů:

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

Poznámka: První řádek nebo #! lze vynechat, pokud skript obsahuje pouze sadu standardních systémových příkazů bez jakýchkoliv interních příkazy shellu.

Jak spustit skript Shell v Linuxu

Konvenční syntaxe pro vyvolání skriptu shellu je:

script_name  argument1 ... argumentN

Další možnou formou je jasné zadání shellu, který spustí skript, jak je uvedeno níže:

shell script_name argument1 ... argumentN  

Například:

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

Pro skripty, které nemají #! na prvním řádku a obsahují pouze základní systémové příkazy, jako je ten níže:


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

Jednoduše jej udělejte spustitelným a spusťte následovně:


chmod +x  script_name
./script_name 

Metody povolení režimu ladění skriptů prostředí

Níže jsou uvedeny primární možnosti ladění skriptů shellu:

  1. -n (zkratka pro noexec nebo no ecxecution) – přikáže shellu přečíst všechny příkazy, ale neprovede je. Tato volba aktivuje režim kontroly syntaxe.
  2. -x (zkratka pro xtrace nebo trace provedení) – říká shellu, aby zobrazoval všechny příkazy a jejich argumenty na terminálu, zatímco jsou prováděny. Tato možnost umožňuje režim trasování shellu.

1. Úprava prvního řádku skriptu Shell

První mechanismus spočívá ve změně prvního řádku skriptu shellu, jak je uvedeno níže, což umožní ladění celého skriptu.

#!/bin/sh option(s)

Ve výše uvedeném formuláři může být možností jedna nebo kombinace výše uvedených možností ladění.

2. Vyvolání Shell s možnostmi ladění

Druhým je vyvolání shellu s možnostmi ladění následovně, tato metoda také zapne ladění celého skriptu.

shell option(s) script_name argument1 ... argumentN

Například:

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

3. Pomocí set Shell Built-in Command

Třetí metodou je použití vestavěného příkazu set k ladění dané části skriptu shellu, jako je například funkce. Tento mechanismus je důležitý, protože nám umožňuje aktivovat ladění v jakémkoli segmentu skriptu shellu.

Režim ladění můžeme zapnout pomocí příkazu set ve formuláři níže, kde volba je kterákoli z možností ladění.

set option 

Chcete-li povolit režim ladění, použijte:

set -option

Chcete-li zakázat režim ladění, použijte:

set +option

Kromě toho, pokud jsme povolili několik režimů ladění v různých segmentech skriptu shellu, můžeme je všechny zakázat najednou takto:

set -

To je prozatím vše s povolením režimu ladění skriptů shellu. Jak jsme viděli, můžeme ladit buď celý skript shellu, nebo určitou část skriptu.

V příštích dvou epizodách této série se podíváme na to, jak používat možnosti ladění skriptů prostředí k vysvětlení podrobného, kontroly syntaxe a ladění trasování prostředí režimy s příklady.

Důležité je, že se nezapomeňte zeptat na jakékoli otázky k této příručce nebo nám možná poskytněte zpětnou vazbu prostřednictvím sekce komentářů níže. Do té doby zůstaňte ve spojení s Tecmintem.