Otázka je docela přímočará. Výstupní kód předchozího příkazu mohu získat pomocí $?
. Ale co to přesně je?
Nemyslím si, že je to proměnná, protože v názvu proměnné nemůžete mít žádné speciální znaky jiné než _
.
foo?foo=10
bude mít za následek chybu:foo?foo=10: command not found
Takže pokud to není proměnná, co to je? Existují další podobní?
Přijatá odpověď:
Co to je?
$?
je vestavěná proměnná, která ukládá stav ukončení příkazu, funkce nebo samotného skriptu.
$?
přečte stav ukončení posledního provedeného příkazu. Poté, co funkce vrátí, $?
udává stav ukončení posledního příkazu provedeného ve funkci. Toto je Bashův způsob, jak dát funkcím „návratovou hodnotu“. Vrací na úspěch nebo celé číslo v rozsahu
1 - 255
na chybu.
Existují i další podobné?
Ano, v bash je několik takových vestavěných proměnných. Seznam si můžete prohlédnout zde.
Viz:http://www.tldp.org/LDP/abs/html/exit-status.html