在shell编程中, 重定向是一种常用的技术, 它允许将命令的输出发送到一个文件或者设备上, 而不是显示在屏幕上. 这里, 我们将介绍四种常见的shell重定向方法, 以及它们之间的区别.
> file
> file 是最基本的shell重定向方法, 它将命令的输出发送到一个文件中. 例如, 下面的命令将输出发送到一个名为"output.txt"的文件中:
$ command > output.txt
这个命令会将command的输出发送到output.txt文件中, 并且会覆盖原有的内容. 如果想要将输出添加到现有的文件中, 可以使用>>符号代替>.
2>&1
2>&1 是一种特殊的shell重定向方法, 它将标准错误(stderr)重定向到标准输出(stdout). 例如, 下面的命令将标准错误重定向到标准输出:
$ command 2>&1
这个命令会将command的标准错误发送到标准输出中, 并且会覆盖原有的内容. 如果想要将标准错误添加到现有的文件中, 可以使用>>符号代替>.
1>&2
1>&2 是一种特殊的shell重定向方法, 它将标准输出(stdout)重定向到标准错误(stderr). 例如, 下面的命令将标准输出重定向到标准错误:
$ command 1>&2
这个命令会将command的标准输出发送到标准错误中, 并且会覆盖原有的内容. 如果想要将标准输出添加到现有的文件中, 可以使用>>符号代替>.
/dev/null
/dev/null 是一个特殊的文件, 它接收所有的输入, 并丢弃所有的输出. 例如, 下面的命令将输出发送到/dev/null中:
$ command > /dev/null
这个命令会将command的输出发送到/dev/null中, 并且会覆盖原有的内容. 如果想要将输出添加到现有的文件中, 可以使用>>符号代替>.
总结
在shell编程中, 重定向是一种常用的技术, 它允许将命令的输出发送到一个文件或者设备上, 而不是显示在屏幕上. 这里, 我们介绍了四种常见的shell重定向方法, 以及它们之间的区别. 希望这些信息对您有所帮助.
参考文献
- Linux Shell Programming HOWTO - Redirection
- The Linux Documentation Project - Redirection
- Shell Programming Tutorial - Redirection