Entendo que se eu executar um comando no shell com os operadores e comercial, por exemplo, command1&&command2
e se o primeiro comando for executado com êxito, ele o fará com um status de saída zero.
Isso é semelhante ou diferente da lógica booleana, em que 0 é falso e 1 é verdadeiro ou entendi incorretamente?
O tipo de shell que você usa faz diferença? Atualmente estou executando o Bourne-Again Shell.
Responder1
Shell é principalmente 0 para indicar zero erros e sucesso, então sim, nesse sentido, é verdadeiro logicamente, ao contrário de muitas linguagens de programação onde 0 geralmente é falso. Embora as línguas modernas tendam a ter valores lógicos distintos de verdadeiro e falso atualmente.
Responder2
A melhor justificativa é que existe realmente apenas um 'sucesso', mas existem vários motivos para uma 'falha': arquivo não encontrado, erro de argumento, erro computacional, etc. , nas comunicações entre processos - o código de retorno enviado pela exit(2)
chamada do sistema e recebido pela wait(2)
chamada.