求教一个文件描述符和重定向的问题
时间:2011-10-12
来源:互联网
小弟学习重定向时看到这一段代码
$exec 6<>/tmp/fd6
$echo "df -h" >&6
$echo "ls -li" >&6
$echo "free -m" >&6
执行结果是echo的这些内容都到/tmp/fd6文件里去了,屏幕上没有输出。
但我就是第一句不明白:exec 6<>/tmp/fd6 ;这该怎么理解?使文件描述符6指向stdout(<),再把stdin(>)重定向到/tmp/fd6文件?感觉不对啊。还是说exec id<>file;这是把文件描述符id重定向到file的固定格式呢?
另外,就算要实现6重定向到/tmp/fd6,那不是这样就可以了么:
$exec 6>/tmp/fd6;
$echo "df -h" >&6; #这样echo的内容就被导入到文件里去了
既然可以这么简单,那为什么要用exec 6<>/tmp/fd6 这种难理解的格式呢?求指教!
$exec 6<>/tmp/fd6
$echo "df -h" >&6
$echo "ls -li" >&6
$echo "free -m" >&6
执行结果是echo的这些内容都到/tmp/fd6文件里去了,屏幕上没有输出。
但我就是第一句不明白:exec 6<>/tmp/fd6 ;这该怎么理解?使文件描述符6指向stdout(<),再把stdin(>)重定向到/tmp/fd6文件?感觉不对啊。还是说exec id<>file;这是把文件描述符id重定向到file的固定格式呢?
另外,就算要实现6重定向到/tmp/fd6,那不是这样就可以了么:
$exec 6>/tmp/fd6;
$echo "df -h" >&6; #这样echo的内容就被导入到文件里去了
既然可以这么简单,那为什么要用exec 6<>/tmp/fd6 这种难理解的格式呢?求指教!
作者: njusthsy 发布时间: 2011-10-12
http://bbs.chinaunix.net/thread-3606539-1-1.html
作者: o06v90o 发布时间: 2011-10-12
看样就是exec <> 是重定向描述符6的定向到文件/tmp/fd6,文件打开方式为读写。
之后的exec >& 是将程序输出写到描述符6.
exec > 是将描述符1定向到文件,文件打开方式为写。
总结起来感觉就是:>&是写往某个描述符的意思,n>filename是重定向描述符n到某个文件,文件写打开。
n<>filename就是重定向描述符n到filename,filename以读写打开。
之后的exec >& 是将程序输出写到描述符6.
exec > 是将描述符1定向到文件,文件打开方式为写。
总结起来感觉就是:>&是写往某个描述符的意思,n>filename是重定向描述符n到某个文件,文件写打开。
n<>filename就是重定向描述符n到filename,filename以读写打开。
作者: qq120848369 发布时间: 2011-10-12
程序或者命令后边跟着>,< 属于给子进程的描述符重定向.
exec 后边跟着<,>属于给父进程的描述符重定向.
应该是这个关系.
exec 后边跟着<,>属于给父进程的描述符重定向.
应该是这个关系.
作者: qq120848369 发布时间: 2011-10-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28