shell 重定向
Introduction
使用一个例子简要介绍了 shell 编程中得输入输出重定向问题。
Basics
- 0
- stdin
- 1
- stdout
- 2
- stderr
Input Redirection
Syntax
# read from file
cmd < file
# read from single line here-doc
cmd <<< here-doc
# read from multi line here-doc
cmd << EOF
content
EOF
Output Redirection
Syntax
cmd > /dev/null 2>&1
Explain
符号 >
等价于 1>
(系统默认为1,省略了); 所以 > /dev/null
等同于 1> /dev/null
/dev/null
代表空设备文件
&
可以理解为是”等同于”的意思,2>&1
,即表示2的输出重定向等同于1
因此,> /dev/null 2>&1
也可以写成 1> /dev/null 2>&1
1> /dev/null
:首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1
:接着,将标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。