04.IO 重定向和管道

IO 重定向和管道

  • [IO 重定向和管道](#IO 重定向和管道)
    • [1. I/O重定向 redirect](#1. I/O重定向 redirect)
      • [1.1 标准输出和错误重新定向](#1.1 标准输出和错误重新定向)
    • [2. 标准输入重定向](#2. 标准输入重定向)
    • [3. 标准输入多行重定向](#3. 标准输入多行重定向)
    • [4. 管道](#4. 管道)

IO 重定向和管道

  1. 标准输入设备(stdin):对应终端键盘
  2. 标准输出设备(stdout):对应终端的显示器
  3. 标准错误输出设备(stderr):对应终端的显示器

1. I/O重定向 redirect

I/O重定向:将默认的输入,输出或错误对应的设备改变,指向新的目标。

1.1 标准输出和错误重新定向

STDOUT和STDERR默认是使用当前终端,但也可以重定向到指定终端或指定文件

bash 复制代码
# 覆盖操作符,如果文件存在,会被覆盖
>           # 把STDOUT重定向到文件
1>          # 同上
2>          # 把STDERR重定向到文件
&>          # 把标准输出和错误都重定向 覆盖重定向
>&          # 和上面功能一样,建议使用上面方式
&>>         # 追加重定向        

# 追加操作符,在原有文件的基础上追加内容
>>			# 追加标准输出重定向至文件
1>>         # 同上
2>>			# 追加标准错误重定向至文

2. 标准输入重定向

标准输入重定向是使用文件来代替键盘的输入,从文件中读取数据,代替当前终端的输入设备输入的数据,此处要严格区分命令是否支持标准输入,标准输入和参数是两个概念;

不跟任何选项参数,直接回车,看是否等待标准输入,如果是,则该命令可以使用标准输入重定向。

bash 复制代码
COMMAND < FILE

3. 标准输入多行重定向

使用 "<<终止词" 命令从键盘把多行重导向给STDIN,直到终止词位置之前的所有文本都发送给STDIN, 有时被称为就地文本(here documents),其中终止词可以是任何一个或多个符号,其中EOF比较常用

4. 管道

使用管道,要求前一个命令必须支持标准输出,后一个命令必须支持标准输入;