(2 odpovědi)
Uzavřeno před 2 lety.
V mém terminálu to vytisklo zdánlivě náhodné číslo 127
. Myslím, že to vypisuje hodnotu nějaké proměnné a abych ověřil své podezření, definoval jsem novou proměnnou v=4
. Spuštěno echo $?
znovu mi dal jako výstup.
Jsem zmatený, protože jsem čekal, že odpověď bude 4.
Přijatá odpověď:
Z man bash
:
$? Rozbalí se na stav ukončení naposledy provedeného potrubí v popředí.
echo $?
vrátí návratový stav posledního příkazu. Máte 127
to je stav ukončení posledního provedeného příkazu ukončeného s nějakou chybou (s největší pravděpodobností). Příkazy se po úspěšném dokončení ukončí se stavem ukončení (s největší pravděpodobností). Poslední příkaz dal výstup
od
echo $v
na předchozím řádku dokončeno bez chyby.
Pokud provedete příkazy
v=4
echo $v
echo $?
Získáte výstup jako:
4 (from echo $v)
0 (from echo $?)
Zkuste také:
true
echo $?
Získáte .
false
echo $?
Získáte 1
.
true
příkaz nedělá nic, pouze se ukončí se stavovým kódem ; a
false
příkaz také nedělá nic, pouze se ukončí se stavovým kódem indikujícím selhání (tj. se stavovým kódem 1
).