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.
$ datumZkontrolujte 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.
$ abcdZkontrolujte 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ýstupPodle 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!