¿El estado de salida cero es diferente al de la lógica booleana cuando se utiliza el shell de Linux?

¿El estado de salida cero es diferente al de la lógica booleana cuando se utiliza el shell de Linux?

Entiendo que si ejecuto un comando en el shell con los operadores de signo y, por ejemplo, command1&&command2y si el primer comando se ejecuta correctamente, lo hará con un estado de salida cero.

¿Es esto similar o diferente a la lógica booleana en la que 0 es falso y 1 es verdadero o lo he entendido incorrectamente?

¿El tipo de caparazón que usas hace alguna diferencia? Actualmente estoy ejecutando Bourne-Again Shell.

Respuesta1

Shell en su mayoría es 0 para indicar cero errores y éxito, por lo que sí, en este sentido es cierto lógicamente, a diferencia de muchos lenguajes de programación donde 0 generalmente es falso. Aunque los lenguajes modernos tienden a tener distintos valores lógicos de verdadero y falso en la actualidad.

Respuesta2

La mejor razón es que en realidad sólo hay un "éxito", pero hay múltiples razones para un "fracaso": archivo no encontrado, error de argumento, error computacional, etc. Esta fue una convención del sistema operativo, no solo del shell. , en las comunicaciones entre procesos: el código de retorno enviado por la exit(2)llamada al sistema y recibido por la wait(2)llamada.

información relacionada