Programování BASH

Bash Exit Code posledního příkazu

Bash Exit Code posledního příkazu
Když je spuštěn příkaz bash, zanechá za sebou kód ukončení, bez ohledu na úspěšné nebo neúspěšné provedení. Zkoumání výstupního kódu může nabídnout užitečné informace o chování příkazu při posledním spuštění.

V této příručce se podívejte, jak zkontrolovat výstupní kód bash posledního příkazu a některá jeho možná použití.

Bash Exit Code

Každý příkaz systému UNIX / Linux provedený skriptem prostředí nebo uživatelem opustí stav ukončení. Je to celé číslo, které zůstane nezměněno, pokud nebude spuštěn další příkaz. Pokud je kód ukončení 0, byl příkaz úspěšný. Pokud je výstupní kód nenulový (1-255), znamená to chybu.

Existuje mnoho možných použití výstupního kódu bash. Nejviditelnějším z nich je samozřejmě ověření, zda je poslední příkaz proveden správně, zvláště pokud příkaz negeneruje žádný výstup.

V případě bash je kód ukončení předchozího příkazu přístupný pomocí proměnné prostředí „$?“.

Kontrola výstupního kódu Bash

Spusťte terminál a spusťte libovolný příkaz.

$ datum

Zkontrolujte hodnotu proměnné prostředí „$?„Pro výstupní kód.

$ echo $?

Protože příkaz „date“ proběhl úspěšně, je výstupní kód 0. Co by se stalo, kdyby došlo k chybě?

Zkusme spustit příkaz, který neexistuje.

$ abcd

Zkontrolujte výstupní kód.

$ echo $?

Je to nenulová hodnota, což naznačuje, že předchozí příkaz nebyl proveden správně.

Nyní se podívejte na následující příkaz:

$ vzorek kočky.txt | grep „coin“

Při práci s příkazem, který má jeden nebo více kanálů, bude výstupní kód posledního kódu provedeného v kanálu. V tomto případě je to příkaz grep.

Protože příkaz grep byl úspěšný, bude mít hodnotu 0.

$ echo $?

V tomto příkladu, pokud selže příkaz grep, bude výstupní kód nenulový.

$ vzorek kočky.txt | grep „abcd“
$ echo $?

Začlenění výstupního kódu do skriptů

Kód ukončení lze také použít pro skriptování. Jedním z jednoduchých způsobů použití je přiřazení proměnné prostředí a práce s ní. Zde je ukázkový skript prostředí, který používá výstupní kód jako podmínku pro tisk konkrétního výstupu.

$ #!/ bin / bash
$ echo „ahoj svět“
$ status = $?
$ [$ status -eq 0] && echo "příkaz úspěšný" || echo "příkaz neúspěšný"

Při spuštění skript vygeneruje následující výstup.

Nyní se podívejme, co se stane, když se má spustit neplatný příkaz.

$ #!/ bin / bash
$ random-command
$ status = $?
$ [$ status -eq 0] && echo "příkaz úspěšný" || echo "příkaz neúspěšný"

Při spuštění bude výstup jiný.

Hodnota výstupního kódu Vysvětlení

Když je výstupní kód nenulový, hodnota se pohybuje od 1 do 255. Co tato hodnota znamená??

I když je hodnota omezená, vysvětlení každé hodnoty je pro program / skript jedinečné. Například „ls“ a „grep“ mají různá vysvětlení pro chybový kód 1 a 2.

$ muž

$ man grep

Definování stavu opuštění ve skriptu

Při psaní skriptu můžeme definovat vlastní hodnoty ukončovacího kódu. Je to užitečná metoda pro snazší ladění. V bash skriptech je to příkaz „exit“ následovaný hodnotou ukončovacího kódu.

$ výstup

Podle konvence se doporučuje přiřadit úspěšný kód ukončení 0 a zbytek (1-255) použít pro možné chyby. Po dosažení příkazu exit bude provádění shellového skriptu ukončeno, dávejte proto pozor na jeho umístění.

Podívejte se na následující shell skript. Zde, pokud je podmínka splněna, bude skript ukončen s ukončovacím kódem 0. Pokud podmínka není splněna, bude výstupní kód 1.

$ #!/ bin / bash
$ if [["$ (whoami)" " != root]]; pak
$ echo "Není uživatel root."
$ výstup 1
$ fi
$ echo "uživatel root"
$ exit 0

Ověřte výsledek spuštění tohoto skriptu bez oprávnění sudo nebo uživatele „root“.

$ ./vzorek.sh
$ echo $?

Závěrečné myšlenky

Tato příručka ukazuje, jaké jsou výstupní kódy a jak je můžete použít. Také ukazuje, jak přiřadit příslušné kódy ukončení v bash skriptu.

Zájem o bash skriptování? Jedním z nejjednodušších způsobů, jak začít, je psaní vlastních skriptů. Podívejte se na tento jednoduchý průvodce, jak napsat jednoduchý bash skript.

Šťastný výpočetní výkon!

Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...