Szeretném tudni, mi az a 99-es kijárat, és miért használná az ember, és mi a jelentősége annak.
Például , exit 99
-t használok.
Megjegyzések
- Nagyjából hasonló válasz a SO: " Miért adjon vissza negatív hibát? (Pl. Return -EIO) "
Válasz
A 99-es kóddal való kilépésnek nincs jelentősége, csak talán a egy adott program.
Akárhogy is, exit
kilép a shellből egy bizonyos kilépési kóddal, ebben az esetben 99. További információt a 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.
Megjegyzések
- Ha meg szeretné tenni valami olyan konkrét visszatérési kóddal, mint a bash-ban, használja a
$?
-t, hogy elérje. - Nem egészen – a 99 nem nulla, és így indi arra hivatkozik, hogy a program valamilyen okból kudarcot vallott.
- @psusi Rengeteg nem nulla kilépési kód található az alkalmazásokban, amelyek nem a meghibásodáshoz kapcsolódnak, hanem más végrehajtási feltételeket jeleznek (sok program a hamisságra utal vagy nem optimális végrehajtás, mint például kudarc). Az az állítás, hogy egy bizonyos kilépési állapotnak jeleznie kell a kudarcot a program ismerete nélkül, egyszerűen nem igaz. ' t nem spekuláltam " 99 " jelentésével valamilyen ismeretlen programban.
- A shell és a legtöbb egyéb eszköz, beleértve a make-t is, a nullától eltérő kilépési értékeket hibaként kezeli.
- Ezeket kivéve csak a hibát jelzik külön-külön, nem az ellenőrzés nagyobb összefüggésében. az igazságért. Akárhogy is, nem vagyok hajlandó spekulálni valamilyen kilépőkód jelentésével, ha az alkalmazás nincs meghatározva.
Válasz
A @Chris Down mellett van néhány visszatérési kód is, amely a shell számára van fenntartva, és különleges jelentéssel bírnak:
RETVAL Meaning 1 General errors 2 Misusage 127 Command not found
Hivatkozhat a ezt a további részletekért.
Megjegyzések
- @MrLister: Igen, rosszul választom, javítva!
- még mindig hiányzik egy
s
(" Misuage "?)
Válasz
Általában, ha a szkriptet valamikor befejezi a következővel:
exit 0
A shell 0 értéket kap, mivel a visszatérési kód . Ez a nulla azt jelenti, hogy minden rendben volt .
Ha azonban a programja hibát észlelt, akkor nem nulla visszatérési kóddal kell kilépnie, hogy tájékoztassa a héjat arról, hogy valami nem stimmelt. Ha nem akarsz konkrétabb lenni, akkor egyszerűen használd az 1-es számot.
exit 1
A más számok. Például maga a bash
127-et ad vissza a program nem található kifejezéshez. Tehát, ha dokumentálja a szkript viselkedését, akkor tehet valami hasznosat futtatásával ellenőrizzük a $?
speciális változó értékét, amely az utoljára futtatott program visszatérési kódját tárolja.
Ezt néha utánanéztem, és megtaláltam hogy például a FreeBDS-nek nagyon hasznos egyezményei voltak a kilépési kódokkal kapcsolatban, amelyeket a man 3 sysexits
Megjegyzések
- " A shell 0-at kap visszatérési kódként " helytelen, a
exit
paraméterek nélkül kilép az utolsó parancsfutás állapotkódjával. (lásd: pub s.opengroup.org/onlinepubs/009695399/utilities/exit.html ) - Köszönöm, régóta fennálló tévhitem megoldja a választ.
- Remek, visszavonás eltávolítva 🙂
Válasz
Nagyon régóta létezik (Unix-ban) a visszatérés- állapottartományok:
- 0 sikert jelent
- pozitív számok jelentenek kisebb problémákat, de lényegében a feladat teljesült > negatív számok kritikus hibát jelentenek (pl lemez-tele, fájl-nem található)
Hogy pontosan mit jelentenek az egyes pozitív és negatív számok, a programozón múlik. Néha kiválaszthatja őket más hasonló programokkal való kompatibilitás érdekében (pl. Gnu eszközök). A @Gnouc felsorol néhányat.
Nem, nincs tudomásom arról, hogy a 99-es kilépéshez különös jelentősége lenne, soha nem láttam használni. Talán ez azt jelenti, hogy “Nincs elég sör”
Lásd:
- válasz a szóra: SO: “Miért adjon vissza negatív hibát? (például.return -EIO) “ szintén
- az errno.h-ból törölt szabványos Unix hibakódok listájának megjelenítése , bár ezek pozitívak .
Megjegyzések
- Soha nem hallottam erről a Unix-egyezményről. És a két hivatkozásod nem támasztja alá az állításoddal kapcsolatos állításodat.
- Az első hivatkozás nem. 1,67 millió Google találat található az unix visszatérési állapot pozitív negatív számokon .
- Kis számú negatív visszatérési érték van megadva POSIX.1, de ezek API-k programozására szolgálnak
Válasz
Egyes programozók sokféle hibakódot fognak megadni 1. verzióval. Az új verziók új specifikus hibakódokat vezethetnek be, tehát melyik kódot kell használni
“minden más hiba / nem specifikált hiba” esetén? A kilépési kódokat 255-re csonkítjuk, ezért a 99-et választanám “egyéb hibának”. .