2012-03-23 15 views
5

Tengo un script Perl que ejecutará tres aplicaciones. Todos tienen diferentes estados de código de salida.¿El estado del código de salida con valor cero siempre significa ejecutar con éxito en Perl?

El primer código de salida de la aplicación es 1. La aplicación salió normalmente sin ningún problema. (Correcto)

El segundo estado del código de salida de la aplicación es 99. Sin embargo, la aplicación salió normalmente sin ningún problema. (Correcto)

Por último, el estado del código de salida de la tercera aplicación es 0. Lo mismo con el primero y el segundo, la aplicación salió normalmente sin ningún problema. (Correcto)

Nota: ya cambia el estado del código de salida 8 bits a la derecha.

La pregunta es, ¿el estado del código de salida siempre vuelve a 0 si se ejecuta con éxito?

Por favor, no hay comentarios duros, me confundí. Por favor aconséjame.

Respuesta

7

El proceso secundario elige el estado de devolución. Es convencionalmente cero para una operación exitosa, pero no hay nada para hacer cumplir esa convención.

También es posible que los procesos devuelvan informativo estados de devolución que indican diferentes formas de éxito. Por ejemplo, un programa que modificó todos los archivos en un directorio puede devolver un valor distinto de cero para decir que no hubo archivos para modificar.

Debe consultar la documentación de las aplicaciones para ver si se menciona algo sobre los valores que se pueden devolver. Si no puede encontrar nada, debe decidir empíricamente qué valores indican el éxito.

4

La mayoría de los entornos de sistema operativo sugieren y brindan soporte para cero como un código de salida exitoso, y otros valores que indican algún tipo de estado: si ordinario o excepcional se documenta individualmente para cada programa.

Incluso MSDOS simplista proporciona una buena compatibilidad para que un archivo por lotes reaccione a un cierto errorlevel y haga algo diferente.

Un entorno que tiene fuertes reacciones predeterminadas a un estado de devolución distinto de cero es la familia del sistema operativo VMS/OpenVMS. Si su (s) aplicación (es) puede que se ejecuten allí, siga el estándar.

Cuestiones relacionadas