Programovanie v jazyku BASH

Bash výstupný kód posledného príkazu

Bash výstupný kód posledného príkazu
Keď je vykonaný príkaz bash, zanechá za sebou výstupný kód, bez ohľadu na úspešné alebo neúspešné vykonanie. Preskúmanie výstupného kódu môže poskytnúť užitočný prehľad o správaní sa príkazu posledného spustenia.

V tejto príručke sa dozviete, ako skontrolovať výstupný kód bash posledného príkazu a jeho možné použitie.

Bash výstupný kód

Každý príkaz systému UNIX / Linux vykonaný shell skriptom alebo používateľom opustí stav ukončenia. Je to celé číslo, ktoré zostane nezmenené, pokiaľ nebude spustený ďalší príkaz. Ak je výstupný kód 0, potom bol príkaz úspešný. Ak je výstupný kód nenulový (1 255), znamená to chybu.

Existuje veľa možných použití výstupného kódu bash. Najzrejmejšou z nich je samozrejme kontrola, či je posledný príkaz vykonaný správne, najmä ak tento príkaz negeneruje žiadny výstup.

V prípade bash je výstupný kód predchádzajúceho príkazu prístupný pomocou premennej shellu „$?“.

Prebieha kontrola výstupného kódu Bash

Spustite terminál a spustite ľubovoľný príkaz.

$ dátum

Skontrolujte hodnotu premennej shellu „$?”Pre výstupný kód.

$ echo $?

Pretože príkaz „date“ prebehol úspešne, výstupný kód je 0. Čo by sa stalo, keby došlo k chybe?

Skúsme spustiť príkaz, ktorý neexistuje.

$ abcd

Skontrolujte výstupný kód.

$ echo $?

Je to nenulová hodnota, čo naznačuje, že predchádzajúci príkaz sa nevykonal správne.

Teraz sa pozrite na nasledujúci príkaz:

$ vzorka mačky.txt | grep „coin“

Pri práci s príkazom, ktorý má jednu alebo viac rúrok, bude výstupný kód posledným kódom vykonaným v rúre. V tomto prípade je to príkaz grep.

Pretože príkaz grep bol úspešný, bude mať hodnotu 0.

$ echo $?

Ak v tomto príklade zlyhá príkaz grep, bude výstupný kód nenulový.

$ vzorka mačky.txt | grep “abcd”
$ echo $?

Začlenenie výstupného kódu do skriptov

Výstupný kód je možné použiť aj na skriptovanie. Jedným jednoduchým spôsobom, ako ho použiť, je priradiť ho k premennej shellu a pracovať s ním. Tu je ukážkový skript shellu, ktorý používa výstupný kód ako podmienku na tlač konkrétneho výstupu.

$ #!/ bin / bash
$ echo „ahoj svet“
$ status = $?
$ [$ status -eq 0] && echo "príkaz úspešný" || echo "príkaz nebol úspešný"

Po spustení skript vygeneruje nasledujúci výstup.

Teraz sa pozrime, čo sa stane, keď sa má vykonať neplatný príkaz.

$ #!/ bin / bash
$ náhodný príkaz
$ status = $?
$ [$ status -eq 0] && echo "príkaz úspešný" || echo "príkaz nebol úspešný"

Po spustení bude výstup iný.

Hodnota výstupného kódu Vysvetlenie

Ak je výstupný kód nenulový, hodnota sa pohybuje od 1 do 255. Čo teraz znamená táto hodnota?

Aj keď je hodnota obmedzená, vysvetlenie každej hodnoty je jedinečné pre program / skript. Napríklad „ls“ a „grep“ majú odlišné vysvetlenia pre chybový kód 1 a 2.

$ man ls

$ man grep

Definovanie stavu opustenia v skripte

Pri písaní skriptu môžeme definovať vlastné hodnoty výstupného kódu. Je to užitočná metóda na jednoduchšie ladenie. V bash skriptoch je to príkaz „exit“, za ktorým nasleduje hodnota ukončovacieho kódu.

$ výstup

Podľa konvencie sa odporúča priradiť výstupný kód 0 pre úspešné spustenie a zvyšok (1-255) použiť na možné chyby. Po dosiahnutí príkazu exit bude vykonávanie shell skriptu ukončené, preto buďte opatrní pri jeho umiestnení.

Prezrite si nasledujúci shell skript. Tu, ak je podmienka splnená, sa skript ukončí s ukončovacím kódom 0. Ak podmienka nie je splnená, výstupný kód bude 1.

$ #!/ bin / bash
$ if [["$ (whoami)" " != root]]; potom
$ echo "Nie užívateľ root.„
$ výstup 1
$ fi
$ echo "užívateľ root"
$ výstup 0

Overte výsledok spustenia tohto skriptu bez oprávnenia sudo alebo „root“.

$ ./ vzorka.š
$ echo $?

Záverečné myšlienky

Táto príručka demonštruje, čo sú výstupné kódy a ako ich môžete použiť. Ukazuje tiež, ako priradiť príslušné ukončovacie kódy v skripe bash.

Mám záujem o skriptovanie typu bash? Jedným z najjednoduchších spôsobov, ako začať, je písanie vlastných skriptov. Prečítajte si tohto jednoduchého sprievodcu, ako napísať jednoduchý bash skript.

Šťastné výpočty!

Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...
Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...