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átumSkontrolujte 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.
$ abcdSkontrolujte 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ýstupPodľ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!