Tengo dificultades para encontrar una lista completa y actualizada de códigos de error de Bash. por ejemplo:
$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4
¿Cómo se supone que uno debe buscar esos códigos de salida?
Respuesta aceptada:
tl;dr Los códigos de salida son específicos de la aplicación.
Hay algunas convenciones sueltas. false
y cualquier cosa exitosa con el prefijo !
(como ! true
) en los shells POSIX devuelven el código de salida 1, pero un desarrollador puede usar cualquier código de salida entre 0 y 255 para lo que quiera. En última instancia, debe mirar su documentación (en el mejor de los casos) o el código (en el peor de los casos) para saber qué significa. Para programas con man
los códigos de salida de las páginas a menudo se enumeran en una sección denominada EXIT STATUS
(Herramientas GNU como find
).
Algunos significados populares se enumeran en /usr/include/sysexits.h
– Trato de usarlos siempre que sea posible. Como señala @AnsgarEsztermann, estas no son una referencia de Bash, ni siquiera una referencia de aplicación, excepto para aquellos que eligen usarla (desarrolladores de C/C++ principalmente de acuerdo con el ABS).