如何执行 if 条件判断 bash 命令是否失败?

如何执行 if 条件判断 bash 命令是否失败?

我想要一个非常简单的条件,只有在command失败时才会执行。

在此示例中,它是基于命令成功的条件。

if command ; then
    echo "Command succeeded"
fi

我想要相反的- 我怎样才能做到这一点?除了比较之外还有什么优雅的方法吗$?

我不想使用||or 运算符 - 它确实在语义上传达(在我看来)所需的功能。如果是command || echo "command failed"

答案1

取消命令的退出状态:

if ! command ; then
    echo "Command failed"
fi

答案2

@StephenKitt 正确答案的替代方法::在“then”块和else块中使用“no-op”命令:

if command; then :; else
    echo "command failed"
fi

完全披露:我自己不会使用这种方法。

相关内容