使用 Linux shell 时,零退出状态与布尔逻辑的退出状态是否不同?

使用 Linux shell 时,零退出状态与布尔逻辑的退出状态是否不同?

我理解如果我在 shell 中使用 & 符号运算符执行一个命令,例如command1&&command2,如果第一个命令成功执行,那么它会以零退出状态执行。

这与布尔逻辑(0 为假、1 为真)相似或不同吗?还是我理解错了?

您使用的 shell 类型有区别吗?我目前正在运行 Bourne-Again Shell。

答案1

Shell 中大多数情况下使用 0 来表示零错误和成功,因此从这个意义上讲,它在逻辑上为真,而不像许多编程语言中 0 通常为假。尽管如今现代语言倾向于使用不同的逻辑值来表示真和假。

答案2

更好的理由是,实际上只有一次“成功”,但“失败”的原因有多个:文件未找到、参数错误、计算错误等。这是操作系统的约定,而不仅仅是 shell 的约定,在进程间通信中 - 由系统exit(2)调用发送并由调用接收的返回代码wait(2)

相关内容