在bash中运行命令如果上一个命令成功,bash如何决定该命令是否成功
当运行这一行bash时在bash中运行命令如果上一个命令成功,bash如何决定该命令是否成功,bash,Bash,当运行这一行bash时 ls file.txt && echo "Exists" || echo "Not exists" 如果文件存在,则Bash echos存在;如果文件不存在,则Bash echos不存在。 所以逻辑是 true && echo "Exists" || echo "Not exists" 问题是:bash如何决定命令是否成功?ls命令将0作为成功的退出代码,在这种情况下,bash如何解释0表示true?这只是一种退出代码惯例,基本上适用于
ls file.txt && echo "Exists" || echo "Not exists"
如果文件存在,则Bash echos存在;如果文件不存在,则Bash echos不存在。
所以逻辑是
true && echo "Exists" || echo "Not exists"
问题是:bash如何决定命令是否成功?ls命令将0作为成功的退出代码,在这种情况下,bash如何解释0表示true?这只是一种退出代码惯例,基本上适用于所有现代操作系统 若我们想在Web上制作一个并行示例,404返回码意味着找不到页面。 在这种情况下,404的选择只是一种约定 在BASH中,基本上,任何不是0的退出代码都是某种错误 以下是BASH保留退出代码的完整列表: 你可能会问,为什么具体是0 <>在C和C++程序中,main函数是int型的,因此它应该返回一个整数值。主函数的返回值被视为应用程序的退出状态。 在大多数操作系统上,返回0表示成功状态,这是一种非常简洁的报告程序运行良好的方式。 在C++中,可选的是返回0;在主函数的末尾,因为编译器会自动包含它 程序本身中实现的特定逻辑将声明程序执行是否正常 例如,我可以实现一个负责删除文件的程序,如果在文件删除过程中出现错误,我将返回-1,否则在删除过程结束时,如果没有错误/异常,我将返回0 您可以通过查看Linux命令的源代码来了解更多信息 例如 在评论之后编辑 仅当左侧的退出状态为零(即true)时,才会计算&&的右侧。 另一方面| |则相反,仅当左侧退出状态为非零(即false)时,它才会计算右侧 BASH对0的行为仅与此类运算符相关 换言之:
$ false && echo working
$ true && echo working
working
$ true || echo working
$ false || echo working
working
对于ls命令,当ls成功查找某些内容时,它将以0退出。此0退出代码是否被解释为TRUE?bash是否对所有将0解释为TRUE的命令都执行相同的操作?非常感谢您的完整回答,并在注释后进行编辑。现在一切都清楚了。谢谢,阿加尼,我很高兴它帮了我的忙!布奥纳·塞拉塔: