Linux shell I/O 重定向
来源:互联网 发布:淘宝怎么打印发货单 编辑:程序博客网 时间:2024/06/06 00:43
Linux shell中的File Descripter可以理解为一个指向文件的指针。默认有三个FD:0,1,2。分别指向的是:Keyboard设备文件,Moniter设备文件,和Moniter设备文件。
Shell中还允许有3..9的FD,默认都没有打开,可以认为指向的为null。
可以通过一下命令查看得开的FD:
ls /proc/self/fd
返回的数字代表FD的值。
利用重定向可以为一个FD赋值,使其指向一个非null的文件,其实就是打开一个FD。
6>&1
可以理解为将FD6指针指向FD1指针指向的文件,既Moniter。这样,FD6和FD1就同时指向同一个文件:Moniter。
6>&-
可以理解为将FD6指针置为空值null,即关闭FD6。
一个重定向只在当前命令中有效。用过exec可以是IO重定向在当前shell中长期有效。
通过类似指针的特性,I/O重定向可以用来保存当前某个FD并在其后恢复。例如:
过滤stderr中的内容,屏蔽含有字符串“unused”的错误输出:
# 创建FD6,指向FD1指向的moniter。exec 6>&1# 运行command命令,将stdout重定向给FD6,再将stderr重定向给stdout。# 这时,command有两个输出FD,# 分别是FD1和FD6,FD1是错误信息,FD6是标准输出内容。# 再将FD1错误信息通过pipe传给grep进行过滤,并将过滤后的内容重定向给FD2。# 最后,将之前的FD6的内容重定向给FD1。# 这样,这条命令有两个输出,FD1是command的标准输出内容,# FD2是经过过滤的command的错误输出。(command 2>&1 >&6 | grep -v unused >&2) 6>&1# 关闭FD6。exec 6>&-
转载:http://blog.sina.com.cn/s/blog_9599e95101019e4n.html
0 0
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向--进阶
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- Linux shell I/O重定向详解
- linux shell I/O 重定向
- Linux Shell I/O重定向
- Linux shell I/O 重定向
- shell------ I/O 重定向
- Shell I/O重定向
- [shell]-Linux shell I/O重定向详解
- Linux系统的Shell I/O重定向详解
- C++作业3
- Spring+mybaits+springmvc练习
- c++实验3—多分数段函数求值
- 摘自w3school的html标签内容——框架标签
- bootstrap仿百度输入框智能提示(提示信息存在于数据库中)
- Linux shell I/O 重定向
- algorithm(set)
- MySql修改数据库编码为UTF8
- IIS7.5 HTTP 错误 500.19
- 分别求1+2+3+.....+n 和 1*2*3*......*n递归
- Docker的数据卷和数据卷容器
- Django-HttpResponse返回models对象
- FastDFS在.Net平台上的使用
- java.math.BigInteger cannot be cast to java.lang.Long