始终在一行中执行 2 个(或更多)命令,但返回第一个命令的退出状态



是否可以在一行中执行 2 个或更多命令,但在 bash 中返回第一个命令的状态?

我在 Docker 构建中有以下步骤:

RUN bin/myserver && cat tmp/log && rm -rf tmp

在我的 docker 构建中运行该过程至关重要,之后进行清理以删除不需要的东西以存储为 docker 层是有意义的。

myserver 记录到日志文件,而不是控制台输出,所以我需要对日志进行分类以了解发生了什么,尤其是在发生故障的情况下。

我怎样才能把这些东西放在一起?

怎么样:

RUN sh -c 'bin/myserver; status=$?; cat tmp/log; rm -rf tmp; exit $status'
您可以使用

2 重定向命令的 stderr>

要忽略这些错误,您可以将其重定向到/dev/null: 2>/dev/null

因此,您的命令行变为:

RUN bin/myserver && cat tmp/log 2> /dev/null && rm -rf tmp 2> /dev/null

最新更新