Bash:运行具有良好退出状态的可执行文件


32

我想在Linux中运行一个可执行文件,无论它返回的退出状态如何,我都想返回一个良好的退出状态。(即没有错误。)

(这是因为我正在使用,sh -ex并且即使一个(特定)命令失败,我也希望脚本继续运行。)

Answers:


47

试试看:

command || true

来自man bash

如果失败的命令是一会儿或直到关键字之后紧随其后的命令列表的一部分,if或elif保留字之后的测试的一部分,在&&或⎪⎪列表中执行的任何命令的一部分(除了最后一个&&或⎪⎪之后的命令,管道中除最后一个命令之外的任何命令,或者该命令的返回值正用!反转。


也是一个不错的:)
voretaq7 2011年

1

尝试使用(executable ; exit 0),或者将其包装在始终退出0的shell脚本中。


1
这在大多数情况下都可以正常工作,但是它会设置一个子Shell,因此,例如,如果(cd foo; exit 0)成功的话,您将不会再以“ foo”结尾,因为您的cwd返回了以前的状态。但是,cd foo || true如果成功,它将留在“ foo”中。
暂停,直到另行通知。

好点-如果您的过程有其他副作用(设置环境变量,更改目录等),则将无法解决。
voretaq7 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.