是否可以在一行中执行2个或更多命令但是在bash中返回第1个命令的状态?
我在Docker构建中有以下步骤:
RUN bin/myserver && cat tmp/log && rm -rf tmp
在我的docker构建中运行该过程是必不可少的,之后进行清理以删除不需要存储为docker层的东西是有意义的。
myserver记录到日志文件,而不是控制台输出,因此我需要记录日志以了解发生了什么,尤其是在出现故障的情况下。
我怎样才把这些东西放在一起?
答案 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