Depende del entorno, pero yo diría que es de estilo pobre.
Los sistemas similares a Unix tienen una fuerte convención de que un estado de salida de 0 denota éxito, y cualquier estado de salida que no sea cero denota un error. Algunos, pero no todos, los programas distinguen entre diferentes tipos de fallas con diferentes códigos de salida distintos de cero; por ejemplo, grep
generalmente devuelve 0 si se encontró el patrón, 1 si no lo fue y 2 (o más) si hubo un error, como un archivo faltante.
Esta convención está bastante conectada a las carcasas de Unix. Por ejemplo, en sh
, bash
y otros shells de tipo Bourne, la instrucción if
trata el estado de salida 0 como éxito / verdadero, y el estado de salida no cero como error / falso:
if your-command
then
echo ok
else
echo FAILURE
fi
Creo que las convenciones de MS Windows son similares.
Ciertamente, no hay nada que le impida escribir su propio programa que usa códigos de salida no convencionales, especialmente si nada más va a interactuar con él, pero tenga en cuenta que está violando una convención bien establecida, y podría vuelve y te morderá más tarde.
La forma habitual en que un programa devuelve este tipo de información es imprimirlo en stdout
:
status = $(your-command)
echo Result is $status