【linux】执行bash文件后如何记录终端打印出来的输出和错误信息

本文介绍了一个技巧,通过在Linux命令行中使用bash脚本和tee命令,将bash脚本的标准输出和错误同时保存到指定的日志文件并实时显示在终端,提高查看和跟踪任务执行情况的便利性。
摘要由CSDN通过智能技术生成

背景

在命令行中执行sh文件后,终端里会显示打印出来的信息,但需要一点点翻动来看很麻烦。以下命令帮助我们将标准输出和标准错误显示在终端上,并且保存到文件中。

命令

命令如下,直接在命令行中输入即可:

LOG_STDOUT="/home/xxx/log/$(date '+%Y%m%d_%H%M%S')_out.log"
LOG_STDERR="/home/xxx/log/$(date '+%Y%m%d_%H%M%S')_err.log"

bash -x xxx.sh > >(tee "$LOG_STDOUT") 2> >(tee "$LOG_STDERR" >&2)

解释

  1. LOG_STDOUT 为输出日志所在的目录
  2. LOG_STDERR 为错误日志所在的目录
  3. bash xxx.sh是执行任务脚本,加入-x参数是可以把sh里面的信息也打印出来(否则可能会忘记该任务用了哪些参数)
  4. 最后使用tee命令,可以使得输出和错误信息都保存到文件,同时也保持在终端中显示。

结果

执行以上命令后我们会在相应目录下得到两个日志文件:
在这里插入图片描述
其中out文件记录了stdout内容,err文件记录了所执行的sh脚本的内容,以及stderr的内容。同时在终端也能同步打印输出信息。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值