Shell输入/输出重定向

Shell输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。

cmd > file 将输出重定向到file
cmd >> file 将输出重定向到file

cmd < file 将输入重定向到file

n > file 将文件描述符为n的文件重定向到file
n >> file 将文件描述符为n的文件以追加的方式重定向到file
n >& m 将输出文件m和n合并
n <& m 将输入文件m和n合并
文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。
如果希望江stdout和stderr合并后重定向到file,可以这样写:
cmd > file 2>&1

Here Document是Shell中的一种特殊的重定向方式,用来将输入重定向到一个交付式Shell脚本或程序。

形如:

cmd << delimiter
document
delimiter
// 结尾的delimiter一定要定格写,前面不能有任何字符,后面也不能有任何字符,包括空格和tab缩进。
wc -l << EOF
baidu
google
taobao
EOF
输出结果:3

/dev/null文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到/dev/null
/dev/null是一个特殊的文件,写入到它的内容会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是它非常有用,将命令的输出重定向到它,会起到“禁止输出”的效果。
cmd > /dev/null 2>&1

 

posted @ 2023-04-07 17:06  小路不懂2  阅读(72)  评论(0编辑  收藏  举报