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

如何将Bash命令的日志输出存入变量?

嘿,我来帮你搞定这个问题!要把Bash命令的输出(包括日志内容)存入变量,其实有几种实用的方式,具体看你要捕获的是普通输出、错误日志,还是两者都要。结合你的场景——script-two.sh会输出hello,我给你具体的操作示例:

1. 捕获标准输出到变量

这是最常用的场景,直接用命令替换(推荐用$(),比老派的反引号可读性更强)就能实现:

# 执行script-two.sh,把它的标准输出存入output变量
output=$(./script-two.sh)

# 验证一下变量内容
echo "$output"

执行后,output变量里就会存着hello啦。

2. 同时捕获标准输出和错误日志

如果你的脚本还会输出错误信息(比如stderr流的内容),想要把正常输出和错误日志一起存入变量,可以把stderr重定向到stdout:

# 方式1:用&>一次性重定向所有输出
output=$(./script-two.sh &>)

# 方式2:更明确的写法,把文件描述符2(stderr)重定向到1(stdout)
output=$(./script-two.sh 2>&1)

这样不管是脚本的正常输出还是错误提示,都会被统一存入变量中。

小补充

  • 要是想保留输出里的换行符,记得用双引号包裹变量(比如上面的echo "$output"),不然换行会被当成空格处理哦。
  • 如果脚本还没执行权限,先跑chmod +x script-two.sh给它加上权限再执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:07:24