sdchy 发表于 2018-8-20 12:07:48

Linux shell编程(三):管道和重定向

标准输入输出

  执行一个shell命令行时通常会自动打开三个标准文件
  即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。


标准输入输出描述符


[*]标准输入(stdin):0
[*]标准输出(stdout):1
[*]标准错误(stderr):2
管道

  “管道”是由一个控制操作符 "|" 或 “|&” 分隔的简单命令序列。


管道格式
  

] [!] COMMAND1 [ [| or |&] COMMAND2 ...]  

  通过管道,一个命令的输出可以作为另一个命令的输入。
  管道中的每个命令的输出通过一个管道连接到下一个命令的输入。也就是说,每个命令读取前一个命令的输出。此连接在命令指定的任何重定向之前执行。
  如果使用“|&”,命令1的标准错误将通过管道连接到COMMAND2的标准输入;它是“2>&1 |”的简写。标准错误的隐式重定向是在命令指定的任何重定向之后执行的。
  

# 例如:  
# cat /etc/passwd|gawk -F: '/^r/{print $p}'# 命令cat的输出通过管道符 | 作为了命令gawk的输入
  
root:x:0:0:root:/root:/bin/bash
  
rjl:x:1000:1000:rjl:/home/rjl:/bin/bash
  
#
  

  

输入输出重定向

输入重定向

  输入重定向使用符号”
页: [1]
查看完整版本: Linux shell编程(三):管道和重定向