Shell输入/输出重定向

我们两清 提交于 2020-02-05 21:12:24
符号 说明
> 覆盖输出重定向
>> 追加输出重定向
2> 错误覆盖输出重定向
2>> 错误覆盖追加重定向
&> 将正确和错误的输出到同文件(合并文件)
cmd<filename 将文件作为命令的标准输入等价于0<
<<EOF 开始符EOF和结束符EOF中间的内容作为标准输入

标准输出:

将本应该输出在屏幕上的内容输入到user.txt中,若此文件不存在,自动创建同名文件,可以使用

# cat /etc/passwd > user.txt

输出重定向会覆盖文件内容

# echo "123456" > file.txt
# cat file.txt
	123456
# echo "111111" > file.txt
# cat file.txt
	111111

若不希望文件内容被覆盖,使用>>追加到文件末尾

# echo "222222" > file.txt
# cat file.txt
	111111
	222222

错误输出和上述同理
标准输入:

统计file文件行数
两个命令执行结果不同,前者会输出文件名;后者没有,它仅从标准输入读取内容

# wc -l file.txt
	2 file.txt
# wc -l < file.txt
	2

将file.txt作为wc 命令的标准输入,执行结果重定向到file2.txt

# wc -l < file.txt > file2.txt

文件描述符FD(proc/pid/fd)
执行一个shell程序时会自动打开三个标准文件
1、标准输入文件(stdin):stdin的文件描述符为0,程序默认从stdin读取数据。
2、标准输出文件(stdout):stdout 的文件描述符为1,程序默认向stdout输出数据。
3、标准错误文件(stderr):stderr的文件描述符为2,程序会向stderr流中写入错误信息。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!