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

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

<分区>

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

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

有没有人有解决这些问题的想法?


问题解决了!感谢大家有意见

我选择解决方案 exec >/dev/null 因为该命令将 all 输出从 std 重定向到/dev/null 而无需其他操作。在这种情况下,exec >/dev/nullscript-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? 相同,但我的问题更清楚,更短

我需要更多评论来解决两种情况下的重复问题

  • 将此问题与其他问题合并并删除此问题
  • 删除这个问题什么都不做
  • 什么都不做

最佳答案

使用 Bash Command Grouping

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

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

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

关于linux - shell 脚本 - 将所有数据从 stdout 重定向到/dev/null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530851/

相关文章:

c - 子进程之间的 UNIX 管道

java - 有没有办法从 Linux Shell 手动调用 Spring Quartz Job

bash - 使用命令行从指定路径递归删除node_modules文件夹

linux - sed 不像其他 linux 命令那样显示退出状态

linux - 无法从 AWS CloudFormation 脚本更新 .bashrc 文件

shell - 查找包含字符串出现次数的文件

C++跨平台查找数据目录的解决方案

android - 由于 : Debug Certificate expired,示例 Android 项目无法正常工作

linux - 在 Linux 上创建核心转储

c - 预期为 ‘char **’ 但参数的类型为 ‘char *’ --argv