L'ABS di TLDP ha una validità discutibile (nel senso che utilizza spesso, senza commenti, pratiche sub-par) quindi non lo prenderei come un particolare bastione di correttezza su questo.
I detti codici di ritorno comando valido sono compresi tra 0
e 255
con "0
" con esito positivo ". Quindi sì, 1
è un codice di errore perfettamente valido (e comune).
Ovviamente non posso dire con certezza perché gli altri lo facciano ma ho due pensieri sull'argomento.
Un errore di contesto (eventualmente combinato con una mancanza di conoscenza del dominio).
In molte lingue un valore di ritorno di -1
da una funzione è un valore perfettamente valido e si distingue da tutti i valori positivi che potrebbero (normalmente si presume) essere restituiti.
Quindi, tentare di estendere tale schema (che lo scrittore ha rilevato nel tempo) a uno script di shell/ecc. è una cosa ragionevole da fare per loro. Soprattutto se non hanno la conoscenza del dominio per rendersi conto che i codici di ritorno validi sono compresi tra 0
255
.
Un tentativo di rendere tali linee di uscita di errore "risaltare" dai normali casi di uscita (che possono essere o non essere riusciti ad uscire autonomamente) nel tentativo di distinguere visivamente un certo insieme di casi di uscita estremamente improbabili o comunque straordinari.
Un'uscita di -1
fa, in realtà, funziona solo non si ottiene un codice di ritorno di -1
si ottiene un codice di ritorno di 255
. (Provare (exit -1); echo $?
nella shell per vederlo.) Quindi questa non è una cosa del tutto irragionevole da voler fare (nonostante sia fonte di confusione e complice nel perpetrare una confusione sui codici di uscita).
fonte
2015-10-14 16:19:38
Dove stai vedendo questo? – Random832
@ Random832: In codice non accessibile da te :-(ma anche, ricordo di aver visto un sacco di exit -1 nel corso degli anni, non ci ho mai pensato molto. – einpoklum
@ Random832: Un altro esempio per te - [qui sul sito] (http://stackoverflow.com/a/18880585/1593077) – einpoklum