Chci vědět, co je exit 99 a proč by jej někdo použil a jaký je jeho významový význam.

Například , Používám exit 99.

Komentáře

Odpověď

Ukončení s kódem 99 nemá žádný význam, kromě toho, že existuje snad v kontextu konkrétní program.

Ať tak či onak, exit ukončí prostředí s určitým ukončovacím kódem, v tomto případě 99. Více informací naleznete v help exit:

exit: exit [n] Exit the shell. Exits the shell with a status of N. If N is omitted, the exit status is that of the last command executed. 

Komentáře

  • Pokud chcete udělat něco konkrétního s návratovým kódem, jako je ten v bash, použijte $? k tomu.
  • Ne tak docela – 99 není nula, a tak indi znamená, že program z nějakého důvodu selhal.
  • @psusi V aplikacích existuje spousta nenulových ukončovacích kódů, které nejsou spojeny se selháním, ale označují jiné podmínky provádění (mnoho programů to používá k označení falešnosti nebo neoptimální provedení spíše než selhání). Tvrdit, že určitý stav ukončení musí označovat selhání bez znalosti programu, prostě není pravda. V nějakém neznámém programu nebudu ' spekulovat o významu " 99 ".
  • Shell a většina ostatních nástrojů, včetně make, považuje jakoukoli nenulovou výstupní hodnotu za chybu.
  • Kromě těchto pouze označte selhání izolovaně, ne ve větším kontextu kontroly pro pravdivost. Ať tak či onak, odmítám spekulovat o významu nějakého ukončovacího kódu, když aplikace není definována.

Odpovědět

Kromě @Chris Down existuje nějaký návratový kód, který je vyhrazen pro shell, má speciální význam:

RETVAL Meaning 1 General errors 2 Misusage 127 Command not found 

Můžete odkazovat na toto pro více podrobností.

Komentáře

  • @MrLister: Ano, moje mistypo, opraveno!
  • stále tam s chybí (" zneužití "?)

Odpověď

Normálně, pokud skript v určitém okamžiku dokončíte pomocí:

exit 0 

Prostředí získá 0 jako návratový kód . Tato nula znamená vše v pořádku .

Pokud však váš program zjistil nějaký chybový stav, můžete by měl skončit s nenulovým návratovým kódem, aby informoval shell, že se něco pokazilo. Pokud nechcete být konkrétnější, můžete jednoduše použít 1.

exit 1 

Můžete však informovat prostředí konkrétního typu selhání pomocí jiná čísla. Například bash vrací 127 pro program nebyl nalezen . Pokud tedy dokumentujete chování svého skriptu, můžete udělat něco užitečného po jeho spuštěním kontrolou hodnoty speciální proměnné $?, která obsahuje návratový kód naposledy spuštěného programu.

Před chvílí jsem se na to podíval a našel že například FreeBDS měl některé velmi užitečné konvence, pokud jde o výstupní kódy, dokumentované v man 3 sysexits

Komentáře

Odpověď

Existuje velmi dlouhá konvence (v Unixu) pro návrat – rozsahy stavů:

  • 0 znamená úspěch
  • kladná čísla znamenají menší problémy, ale v podstatě byl úkol dokončen
  • záporná čísla znamenají kritickou chybu (např plný disk, nenalezený soubor)

Přesný význam těchto kladných a záporných čísel záleží na programátorovi. Někdy je můžete zvolit kvůli kompatibilitě s jinými podobnými programy (např. Nástroji Gnu). @Gnouc uvádí některé.

Ne, nevím o žádném zvláštním významu pro opuštění kódu 99, nikdy jsem neviděl jeho použití. Možná to znamená „Nedostatek piva“

Viz:

Komentáře

  • O této unixové konvenci jsem nikdy neslyšel. A vaše dva odkazy nepodporují vaše tvrzení o této konvenci.
  • První reference ano. Na kladná záporná čísla návratového stavu unixu je 1,67 mil. zásahů google.
  • Existuje malý počet záporných návratových hodnot uvedených v POSIX.1, ale ty jsou určeny pro programování API

Answer

Někteří programátoři začnou dodávat mnoho různých chybových kódů s 1. Nové verze mohou zavádět nové konkrétní chybové kódy, takže jaký kód by měl být použit pro
„všechny ostatní chyby / nespecifikovaná chyba“? Kódy ukončení budou zkráceny na 255, takže bych jako „jinou chybu“ zvolil 99. .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *