首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将源命令中的stdout/stderr捕获/重定向到变量(在bash脚本中)?

在bash脚本中,可以使用重定向操作符将源命令的stdout和stderr捕获或重定向到变量。

要将stdout捕获到变量,可以使用命令替换的方式,将源命令用$()或``包裹起来,并将其赋值给一个变量。例如:

代码语言:txt
复制
output=$(command)

这样,源命令的stdout输出将被捕获到变量output中。

要将stderr捕获到变量,可以使用重定向操作符2>将stderr重定向到一个临时文件,然后再将该文件内容读取到变量中。例如:

代码语言:txt
复制
error=$(command 2>/tmp/error.log && cat /tmp/error.log)

这样,源命令的stderr输出将被重定向到/tmp/error.log文件中,并通过cat命令将文件内容读取到变量error中。

如果希望同时捕获stdout和stderr到不同的变量,可以使用管道操作符|将stdout和stderr分别重定向到不同的变量。例如:

代码语言:txt
复制
output=$(command 2>&1 >/dev/null)
error=$(command 2>/dev/null)

这样,源命令的stdout输出将被捕获到变量output中,stderr输出将被捕获到变量error中。

需要注意的是,重定向操作符>用于将stdout重定向到文件,2>用于将stderr重定向到文件,2>&1用于将stderr重定向到stdout。>/dev/null和2>/dev/null用于将输出丢弃,不保存到文件或变量中。

以上是将源命令中的stdout/stderr捕获/重定向到变量的方法。在实际应用中,可以根据具体需求选择适合的方式进行处理。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数(云原生无服务器函数计算服务):https://cloud.tencent.com/product/scf
  • 腾讯云云服务器(云计算基础设施):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(云计算存储服务):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI开放平台):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(物联网开发平台):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动应用开发平台):https://cloud.tencent.com/product/mad
  • 腾讯云数据库(云数据库服务):https://cloud.tencent.com/product/cdb
  • 腾讯云区块链(区块链服务平台):https://cloud.tencent.com/product/baas
  • 腾讯云音视频(音视频处理与分发服务):https://cloud.tencent.com/product/vod
  • 腾讯云安全(云安全服务):https://cloud.tencent.com/product/safe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券