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

如何将echo命令的输出追加到变量中并保留换行

如何将echo命令的输出追加到变量中并保留换行

嗨,我来帮你搞定这个问题!要把两次echo的输出追加到同一个变量里,还能保留换行格式,在bash这类shell里其实很简单,我给你拆解几种实用方法:

方法一:用变量追加符+=结合命令替换

这种方式完全贴合你的需求——分两次把echo的结果追加到变量中:

# 先初始化一个空变量
my_output=""

# 第一次追加echo的输出,用双引号包裹命令替换,完整保留换行
my_output+="$(echo "string1")"

# 第二次追加第二个echo的输出,同样保留换行
my_output+="$(echo "string2")"

# 调用变量时一定要用双引号包裹,否则换行会被替换成空格
echo "$my_output"

运行后你会得到想要的输出:

string1
string2

方法二:手动添加换行符(更可控)

如果担心某些环境下echo默认不带换行(比如用了echo -n参数),可以手动添加shell的换行符$'\n'来确保格式:

my_output=""

# 追加第一个字符串+换行
my_output+="$(echo "string1")"$'\n'

# 追加第二个字符串+换行
my_output+="$(echo "string2")"$'\n'

# 输出变量
echo "$my_output"

这种方式的换行更可控,输出效果和第一种一致。

关键注意事项

  • 必须用双引号包裹变量:不管是赋值还是输出时,如果不用双引号,shell会把变量里的换行符当成空白字符替换成空格,最终输出就变成string1 string2了。
  • 命令替换$(echo "xxx")会捕获echo的所有输出(包括默认的换行符),用双引号包裹就能完整保留这些内容到变量中。

备注:内容来源于stack exchange,提问作者Калоян Петров

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 14:59:49