GNU/Linux >> Znalost Linux >  >> Ubuntu

`$?` ? Je to proměnná?

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


Ubuntu
  1. Jak spustíme příkaz uložený v proměnné?

  2. Jak přiřadit výstup příkazu proměnné shellu?

  3. Ukládání výstupu příkazu do proměnné Shell?

  1. Ukončovací kódy příkazového řádku Bash byly demystifikovány

  2. Proveďte příkaz, aniž byste jej uchovávali v historii

  3. Výstupní kód přiřazení proměnné k substituci příkazu v Bash

  1. Jak přiřadit výstup příkazu Linux k proměnné

  2. Rozdíl mezi operátory Bash [[ Vs [ Vs ( Vs ((?

  3. Proč je nastavení proměnné před příkazem v Bash legální?