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]