始终在一行中执行2(或更多)命令,但返回第1行

时间:2017-10-27 11:42:02

标签: bash

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

怎么样:

RUN sh -c 'bin/myserver; status=$?; cat tmp/log; rm -rf tmp; exit $status'

答案 1 :(得分:0)

您可以使用 2>

重定向命令的stderr

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

所以你的命令行变成:

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