Quiero saber qué es la salida 99 y por qué la usaría y cuáles son los usos importantes de ella.

Por ejemplo , «Estoy usando exit 99.

Comentarios

Respuesta

No tiene importancia salir con el código 99, aparte de tal vez en el contexto de un programa específico.

De cualquier manera, exit sale del shell con un cierto código de salida, en este caso, 99. Puede encontrar más información en 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. 

Comentarios

  • Si quieres hacer algo específico con un código de retorno como ese en bash, use $? para llegar a él.
  • No exactamente: 99 no es cero, por lo que indi indica que el programa falló por alguna razón.
  • @psusi Hay muchos códigos de salida distintos de cero en aplicaciones que no tienen que ver con fallas, pero indican otras condiciones de ejecución (muchos programas lo usan para indicar falsedad o ejecución no óptima en lugar de falla, por ejemplo). Afirmar que un cierto estado de salida debe indicar falla sin saber que el programa simplemente no es cierto. Gané ' t especular sobre el significado de " 99 " en algún programa desconocido.
  • El shell y la mayoría de las otras herramientas, incluido make, tratan cualquier valor de salida distinto de cero como un error.
  • Excepto que estos solo indican fallas de forma aislada, no en un contexto más amplio de verificación por la veracidad. De cualquier manera, me niego a especular sobre el significado de algún código de salida cuando la aplicación no está definida.

Respuesta

Además de @Chris Down, hay un código de retorno reservado para el shell, que tiene un significado especial:

RETVAL Meaning 1 General errors 2 Misusage 127 Command not found 

Puede consultar this para más detalles.

Comentarios

  • @MrLister: Sí, mi mistypo, ¡solucionado!
  • Todavía falta un s allí (" Misuage "?)

Responda

Normalmente, si termina su script en algún momento con:

exit 0 

El shell obtendrá un 0 como código de retorno . Este cero significa todo estaba bien .

Sin embargo, si su programa ha encontrado alguna condición de error, debe salir con un código de retorno distinto de cero, para informar al shell que algo salió mal. Si no quiere ser más específico, simplemente puede usar 1.

exit 1 

Sin embargo, puede informar al shell de un tipo particular de fallas usando otros números. Por ejemplo, bash devuelve un 127 para programa no encontrado . Por lo tanto, si documenta el comportamiento de su script, puede hacer algo útil después ejecutándolo comprobando el valor de la variable especial $?, que contiene el código de retorno del último programa ejecutado.

Miré esto hace un tiempo y encontré que, por ejemplo, FreeBDS tenía algunas convenciones muy útiles con respecto a los códigos de salida, documentadas en man 3 sysexits

Comentarios

  • " El shell obtendrá un 0 como código de retorno " incorrecto, exit sin parámetros sale con el código de estado del último comando ejecutado (ver pub s.opengroup.org/onlinepubs/009695399/utilities/exit.html )
  • Gracias, mi error de larga data solucionará la respuesta.
  • Genial, voto negativo eliminado 🙂

Respuesta

Existe una convención muy antigua (en Unix) para devolver rangos de estado:

  • 0 significa éxito
  • los números positivos significan problemas menores, pero esencialmente la tarea completada
  • los números negativos significan un error crítico (p. ej. disco lleno, archivo no encontrado)

Exactamente lo que significan esos números individuales positivos y negativos depende del programador. A veces puede elegirlos por compatibilidad con otros programas similares (por ejemplo, herramientas Gnu). @Gnouc enumera algunos.

No, no conozco ningún significado especial para salir del código 99, nunca lo vi usado. Tal vez signifique «No hay suficiente cerveza»

Ver:

Comentarios

  • Nunca escuché de esa convención de Unix. Y sus dos referencias no apoyan su afirmación sobre esa convención.
  • La primera referencia sí. Hay 1,67 millones de visitas de Google en números negativos positivos de estado de retorno de Unix .
  • Hay una pequeña cantidad de valores de retorno negativos especificados en POSIX.1 pero estos son para API de programación

Respuesta

Algunos programadores proporcionarán muchos códigos de error diferentes comenzando con 1. Las nuevas versiones pueden introducir nuevos códigos de error específicos, por lo que, ¿qué código debería usarse para
«todos los demás errores / error no especificado»? Los códigos de salida se truncarán en 255, por lo que elegiría 99 como «otro error» .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *