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:接着,将标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。