shell脚本 - 将所有数据从stdout重定向到/ dev / null

时间:2016-04-10 14:14:02

标签: linux bash shell travis-ci linux-from-scratch

我使用travis-ci从头开始构建版本7.8。在构建期间,travis-ci抛出错误,因为日志文件大于4兆字节。你可以在lfs-auto, build #15

看到

现在,我想将所有数据从stdout重定向到/ dev / null 以减小日志文件的大小。以正常方式,人们对每个命令使用重定向操作为 dev / null 。但这样会使shell脚本变得太长而且难以阅读

任何机构都有想法解决这些问题吗?

问题解决了!感谢每个机构都有意见

我选择解决方案 exec> / dev / null 因为该命令将所有输出从std重定向到/ dev / null而没有其他操作。在这种情况下, exec> / dev / null script-file>简单,易于编辑/ dev / null {command,...}>的/ dev / null的

解决问题重复

有一些评论,此问题的内容与How do I redirect the output of an entire shell script within the script itself?how to redirect output of multiple commands to one file

相同

我认识到我的问题与How do I redirect the output of an entire shell script within the script itself?相同,但我的问题更明确,更短

我需要更多评论来解决两个案例中的重复问题

  • 将此问题与其他问题合并并删除此问题
  • 删除此问题但不执行任何操作
  • 什么都不做

1 个答案:

答案 0 :(得分:0)

使用Bash Command Grouping

虽然实现目标的方法不止一种,但我建议您编辑构建脚本以对命令进行分组。将大量命令包装在大括号中允许您将列表中的所有命令重定向到同一位置。例如:

{
    echo foo
    echo bar
    echo baz
} > /dev/null

虽然在技术上并不相同,但从实用的角度来看,这将提供类似的结果,将每个命令分别重定向到 / dev / null