GNU/Linux >> Znalost Linux >  >> Linux

Bash Shell Exit Status Tutorial s praktickými příklady

V našem úvodním článku bash jsme se dozvěděli, že soubor skriptu shellu obsahuje seznam příkazů, které má provést interpret shellu. V tomto článku se podíváme na příkazy shellu a jejich vnitřnosti.

Příkaz je posloupnost slov. První slovo označuje příkaz, který se má provést, a zbývající slova jsou předána jako argumenty, kde argumenty mohou být možnosti nebo parametry příkazu.

Některé běžné unixové příkazy, které spouštíte na příkazovém řádku jsou příkazy shellu. Například příkazy ls, lpr a grep.

$ ls -alF

$ lpr filename

$ grep "string" filename

Stav ukončení příkazu Shell

Návratovou hodnotou příkazu je jeho výstupní stav, nebo 128 + N, pokud je příkaz ukončen signálem N. Výstupní stav slouží ke kontrole výsledku (úspěch/neúspěch) provedení příkazu. Pokud je stav ukončení nula, je příkaz úspěšný. Pokud příkaz selže, stav ukončení bude nenulový.

Výstupní hodnota Stav ukončení
0 (nula) Úspěch
Nenulová Selhání
2 Nesprávné použití
127 Příkaz nenalezen
126 Není spustitelný soubor

$? Shell Variable

Název proměnné shellu $? je speciální vestavěná proměnná, která má výstupní stav posledního provedeného příkazu.

  • Po provedení funkce shellu $? vrátí stav ukončení posledního příkazu provedeného ve funkci.
  • Po spuštění skriptu shell $? vrátí stav ukončení posledního příkazu provedeného ve skriptu.

Ukázkový skript Shell, který vysvětluje stav ukončení příkazu Shell

Následující skript shell-exitstatus.sh ukazuje příklady různých stavů ukončení příkazů shellu.

$ cat exitstatus.sh
#! /bin/bash

echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# Exit status returns 0, because the above command is a success.
echo "Exit status" $? 

echo -e "Incorrect usage"
echo -e "====================="
ls --option
# Incorrect usage, so exit status will be 2.
echo "Exit status" $? 

echo -e "Command Not found"
echo -e "====================="
bashscript
# Exit status returns 127, because bashscript command not found
echo "Exit status" $? 

echo -e "Command is not an executable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# Exit status returns 126, because its not an executable.
echo "Exit status" $?

Nyní spusťte výše uvedený exitstatus.sh, abyste viděli různé podoby výstupu dané ukázkovým skriptem shellu.

$ bash exitstatus.sh
Successful execution
=====================
hello world
Exit status 0
Incorrect usage
=====================
ls: unrecognized option `--option'
Try `ls --help' for more information.
Exit status 2
Command Not found
=====================
exitstaus.sh: line 15: bashscript: command not found
Exit status 127
Command is not an executable
=============================
-rw-r--r-- 1 root root 659 Mar  9 13:36 execution.sh
exitstatus.sh: line 21: ./execution.sh: Permission denied
Exit status 126

Poznámka:Kontrola návratové hodnoty funkce nebo příkazu je jednou z hlavních povinností programátora. To by se mělo stát vaší druhou přirozeností při psaní jakéhokoli kódu.


Linux
  1. vim výukový program s příklady příkazů

  2. 15 užitečných vestavěných příkazů Bash Shell (s příklady)

  3. '&&' vs. '&' s příkazem 'test' v Bash

  1. Výukový program Ultimate Bash Array s 15 příklady

  2. Linuxový příkaz rsync s praktickými příklady

  3. Echo Command s praktickými příklady

  1. Bash HereDoc výukový program s příklady

  2. Výukový program příkazu Linux zforce s příklady

  3. Linux tr Command Tutorial pro začátečníky (s příklady)