You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文本与printenv输出合并为单行写入Docker容器日志

实现方案

你原有写法存在两个问题:

  1. 第一条echo命令把重定向逻辑>> /proc/1/fd/1写在了双引号内部,Shell不会识别这是重定向操作,会把这段内容当成普通文本输出,无法正常写入日志
  2. 分两次执行重定向输出时,每次输出默认会在末尾追加换行符,最终会分成两行展示

可以根据你的使用习惯选以下任意一种方式实现单行输出:

  • 单条echo直接拼接(最简洁)
    直接在同一条echo语句里引用环境变量,注意把重定向逻辑放到引号外面:

    echo "自定义文本内容 版本值:${VERSION}" >> /proc/1/fd/1
    

    如果你执行命令的脚本本身就是容器PID=1的主进程启动的,不需要手动重定向到/proc/1/fd/1,直接输出到标准输出就会被Docker日志收集,命令可以简化为echo "自定义文本内容 ${VERSION}"。

  • 嵌入printenv命令输出
    如果你习惯用printenv获取环境变量,可以通过$()命令替换把取值嵌入到同一条输出语句中:

    echo "自定义文本内容 $(printenv VERSION)" >> /proc/1/fd/1
    
  • 保留两次命令的写法
    如果你一定要拆分两次执行逻辑,给第一条echo加上-n参数,取消输出末尾自动追加的换行符即可:

    echo -n "自定义文本内容 " >> /proc/1/fd/1
    printenv VERSION >> /proc/1/fd/1
    

内容的提问来源于stack exchange,提问作者Seura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:57:29