如何在执行terraform apply时禁止打印输出结果?
实现Terraform Apply仅显示最终完成信息的方法
以下几种方式可以实现只保留Apply complete! Resources: N added, N changed, N destroyed.这条最终输出:
管道过滤最后一行
直接通过命令行管道将输出重定向后只保留最后一行,适合快速实现:terraform apply -auto-approve 2>&1 | tail -n 1说明:
2>&1将错误输出合并到标准输出,确保所有内容都能被tail处理;tail -n 1仅保留最后一行输出。如果执行过程中出现错误,最后一行会显示错误信息,成功时则显示目标完成语句。JSON格式精准提取
利用Terraform的-json参数输出结构化内容,再用jq工具过滤出完成消息,这种方式更可靠,能精准捕获成功状态的输出:terraform apply -auto-approve -json | jq -r 'select(.type=="apply_complete") | .message'说明:
-json让Terraform以JSON格式输出所有执行信息;jq命令筛选出类型为apply_complete的条目,并提取其中的message字段,也就是目标完成语句。需要提前安装jq工具。可选的极简屏蔽方式
若要完全屏蔽其他输出(包括错误信息),可以将非目标输出重定向到/dev/null,但不推荐这种做法——会丢失重要的错误排查信息:terraform apply -auto-approve 2>/dev/null | grep -E 'Apply complete!'
内容的提问来源于stack exchange,提问作者PortMan
相关产品推荐
相关产品推荐

