(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 ).