4-3 标准输入输出

Posted kjalbert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-3 标准输入输出相关的知识,希望对你有一定的参考价值。

标准输入输出

程序本身都是由指令+数据构成
读入数据:Input
输出数据:Output

打开的文件都有一个fd:file descriptor(文件描述符)文件描述符:查看程序tail的文件描述符 ll /proc/pidof tail/fd

Linux给程序提供三种I/O设备

  • 标准输入(STDIN(standard input))-0 默认接受来自终端窗口的输入
  • 标准输出(STDOUT)-1 默认输出到终端窗口
  • 标准错误(STDERR)-2 默认输出到终端窗口

I/O重定向:改变默认位置

把输出和错误重新定向到文件

STDOUT和STDERR可以被重定向到文件
命令 操作符号 文件名
支持的操作符号包括:

  • > 把STDOUT重定向到文件
  • 2> 把STDERR重定向到文件
  • &> 把所有输出重定向到文件
  1. >:文件内容会被覆盖
    • set -C:禁止将内容覆盖已有文件,但可追加
    • >|:强制覆盖
    • set +C:允许覆盖
  2. >>:原有基础上,追加内容
  3. 2>:覆盖重定向错误输出数据流
  4. 2>>:追加重定向错误输出数据流

标准输出和错误输出各自定向至不同位置
COMMAND > /PATH/TO/FILE.OUT 2> /PATH/TO/ERROR.OUT
合并标准输出和错误输出为同一个数据流进行重定向
&> 覆盖重定向
&>> 追加重定向
COMMAND> /PATH/TO/FILE.OUT 2&>1(顺序不能乱,因为如果把2&>1写在前面,1现在是输出到屏幕,所以结果是2输出到屏幕,1输出到文件)
COMMAND>> /PATH/TO/FILE.OUT 2&>1
():合并多个程序的STDOUT
例如:(cal 2007;cal 2008)>all.txt

以上是关于4-3 标准输入输出的主要内容,如果未能解决你的问题,请参考以下文章

Shell标准输入标准输出和标准错误的重定向总结

APUE读书笔记-05标准输入输出库(1)

linux 标准输入输出的详解

Linux shell标准输入,标准输出,错误输出

Erlang 读标准输入 写标准输出

如何将 A 的标准输出重定向到 B 的标准输入,将 B 的标准输出重定向到 A 的标准输入?