当前位置: 首页 > news >正文

Linux- 重定向标准输出(stdout)和标准错误(stderr)

在Linux或Unix系统中,可以通过重定向标准输出(stdout)和标准错误(stderr)来将脚本的输出保存到一个文件中。以下是一些方法:

  1. 只重定向标准输出到文件

    ./your_script.sh > output.txt
    

    这将只捕获正常的输出(stdout),但不包括错误消息(stderr)。

  2. 同时重定向标准输出和标准错误到同一个文件

    ./your_script.sh > output.txt 2>&1
    

    这将捕获正常的输出(stdout)和错误消息(stderr),并将它们都写入output.txt

  3. 重定向标准输出和标准错误到不同的文件

    ./your_script.sh > output.txt 2> errors.txt
    

    这将将正常的输出(stdout)写入output.txt,并将错误消息(stderr)写入errors.txt

在这些命令中,./your_script.sh 是你的脚本文件。请确保该脚本具有执行权限。如果没有,你可以使用 chmod +x your_script.sh 命令来添加执行权限。

选择适合你需求的方法并执行即可。如果希望在文件中保留旧的输出并追加新的输出,可以使用 >> 而不是 >,例如:

./your_script.sh >> output.txt 2>&1

这将会在output.txt文件的末尾追加新的输出和错误消息。

Note:
在这个命令中,2>&1 是用来重定向标准错误(stderr)到标准输出(stdout)的。

  • 2 代表标准错误(stderr)。
  • 1 代表标准输出(stdout)。
  • > 是重定向操作符。
  • & 表示我们是在重定向一个文件描述符(在这种情况下是标准错误),而不是创建一个名为&1的文件。

因此,2>&1 说的是:“将标准错误(文件描述符2)重定向到与标准输出(文件描述符1)相同的地方。”

./your_script.sh > output.txt 2>&1 这个命令中,> output.txt 首先将标准输出重定向到一个名为 output.txt 的文件。然后,2>&1 将标准错误也重定向到标准输出所指向的相同的文件。

所以,最终的结果是:该脚本的标准输出和标准错误都会被保存到 output.txt 文件中。

这种语法是 shell(如 bash、sh、zsh 等)中用于I/O重定向的特殊语法,能够更灵活地控制脚本或命令的输出。

http://www.lryc.cn/news/147687.html

相关文章:

  • PostgreSQL分区表
  • android framework之Applicataion启动流程分析(二)
  • django静态文件无法访问解决方案
  • WIndows 配置多版本python环境,非常清晰明了
  • Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)
  • c++(8.28)菱形继承,虚继承,多态,抽象类,模板+Xmind
  • 安装部署JavaFX和IDEA添加JavaFX的详细步骤
  • MAC电脑外放没有声音解决方案
  • Spring源码分析(八)CreateBean与DoCreateBean
  • iSCSI存储服务器
  • 信息技术02--初/高中--分类选择题(377道题与解析)
  • java --- 枚举类
  • nvm和volta对node版本控制的区别
  • 高斯消元解线性方程组
  • 【linux命令讲解大全】032.介绍 Linux 中的 rcp 命令:简化主机间文件复制操作
  • Mysql索引、事务与存储引擎 (事务、MySQL 存储引擎)
  • Doris(六)--通过 Canal 同步数据到 Doris 中
  • 快手Java一面,全是基础
  • 未来芯片设计领域的药明康德——青芯如何在N个项目间游走平衡
  • 【跟小嘉学 Rust 编程】十九、高级特性
  • pandas由入门到精通-数据清洗-缺失值处理
  • Redis 教程 - 主从复制
  • [递归] 子集 全排列和组合问题
  • ELK安装、部署、调试(四)KAFKA消息队列的安装和部署
  • 半导体晶片机器视觉测量及MARK点视觉定位
  • ranger无法同步用户问题解决
  • 使用通信顺序进程(CSP)模型的 Go 语言通道
  • VPN网关
  • 产品展示视频制作的要点
  • appium+python自动化测试