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

如何在echo命令同一行中嵌入执行其他命令并输出结果?

Shell中自定义文本与命令执行结果同行输出的实现方案

你使用echo 'hostname:' hostname无法得到预期效果,原因是该写法中hostname会被shell识别为普通字符串参数,不会实际触发命令执行。
要实现自定义文本和命令返回结果拼接后同行输出,需要使用shell的命令替换能力:shell会优先执行命令替换语法包裹的命令,将其标准输出结果替换到对应位置,再执行外层的输出逻辑。

可用写法

  • 推荐写法(POSIX标准兼容、可读性强、支持命令嵌套):用$()包裹待执行的命令
    echo "hostname: $(hostname)"
    
    执行该命令后即可得到hostname: cpu1这类预期输出,其中cpu1是hostname命令实际返回的主机名结果。
  • 传统兼容写法:用反引号包裹待执行的命令
    echo "hostname: `hostname`"
    
    该写法效果和$()写法完全一致,但反引号在多层命令嵌套的场景下容易出现转义冲突,日常使用优先选$()写法即可。

关键注意点

包含命令替换的整段内容必须用双引号包裹,不能使用单引号:单引号属于强引用,内部的所有特殊语法都会失效,如果写成echo 'hostname: $(hostname)',会原样输出hostname: $(hostname),不会触发命令执行。
该拼接方式支持同时嵌入多个命令的执行结果,例:

echo "hostname: $(hostname), current user: $(whoami), system time: $(date +%F)"

内容的提问来源于stack exchange,提问作者João

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:51:09