首页 > 解决方案 > 如何做一个完全安静的“make”,只输出一个日志文件?

问题描述

我在 Docker 构建阶段有以下步骤:

make shared > clbuild.log
export CRYPTLIB_BUILD_EXIT_CODE=$?
if [ ${CRYPTLIB_BUILD_EXIT_CODE} -ge 0 ]; then exit 1 ;fi

警告仍将通过以下方式输出:

make shared > clbuild.log

我如何才能将所有内容记录到“clbuild.log”文件中,并且根本不显示任何输出、警告或错误?

我希望更简单地依靠退出代码来指示成功或失败。(并且仅在构建失败时中止并显示日志)

标签: linuxbashshellmakefilesh

解决方案


程序总是输出到两个流,stdout 和 stderr,ID 分别为 1 和 2。您必须告诉您 shell 将 stderr 转储到 stdout 中,使用> ... 2>&1或不那么冗长,&>

无论如何,我认为试图弄乱构建过程是浪费时间


推荐阅读