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