ABS ABSDP ma wątpliwą ważność (w tym, że często stosuje się, bez komentarza, praktyki podrzędnej), więc nie wziąłbym tego jako szczególnego bastionu poprawności w tej sprawie.
Wspomniane prawidłowe kody powrotu komend znajdują się między 0
i 255
z 0
"sukcesem". Więc tak, 1
jest całkowicie poprawnym (i powszechnym) kodem błędu.
Oczywiście nie mogę powiedzieć na pewno, dlaczego inni to robią, ale mam dwie myśli na ten temat.
Niepowodzenie przełączania kontekstu (prawdopodobnie w połączeniu z brakiem wiedzy o dziedzinie).
W wielu językach wartość zwracana przez funkcję -1
jest doskonale poprawną wartością i wyróżnia się spośród wszystkich wartości dodatnich, które mogą (zwykle przypuszczalnie) zostać zwrócone.
Próbuję więc przedłużyć ten wzorzec (który pisarz podniósł w czasie) do skryptu powłoki/etc. jest dla nich rozsądną rzeczą. Zwłaszcza jeśli nie mają wiedzy na temat domeny, aby zdać sobie sprawę, że ważne kody powrotu są między 0
255
.
Próba spowodowania, że linie wyjścia błędu "wyróżniają się" z normalnych przypadków wyjścia (które mogą, ale nie muszą, wyjść z siebie), próbując wizualnie odróżnić określony zestaw wyjątkowo mało prawdopodobnych lub w inny sposób nadzwyczajnych przypadków wyjścia.
wyjście z -1
nie, faktycznie, działa po prostu nie dostać się kodem powrotu -1
to dostaje kod powrotny 255
. (Wypróbuj (exit -1); echo $?
w twojej powłoce, aby to zobaczyć.) Więc nie jest to całkowicie nierozsądna rzecz, którą chcesz robić (mimo że jest myląca i współwinna w popełnianiu zamieszania związanego z kodami wyjścia).
Gdzie to widzisz? – Random832
@ Random832: W kodzie, do którego nie masz dostępu :-(ale także, pamiętam, widząc masę wyjścia -1 przez lata, po prostu nigdy się nad tym nie zastanawiałem – einpoklum
@ Random832: Kolejny przykład dla ciebie - [tutaj na stronie] (http://stackoverflow.com/a/18880585/1593077) – einpoklum