LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1570|回复: 4

exec 4>out.txt;exec 5>&4;date 1>&5;exec 6>&0;exec 4>

[复制链接]
发表于 2004-2-22 23:01:36 | 显示全部楼层 |阅读模式
看到这些有点儿头晕.
发表于 2004-2-22 23:39:04 | 显示全部楼层
晕~~~,试着解释一下,
exec 4>out.txt #用exec命令打开文件描述符4,重定向生成文件out.txt,此时文件out.txt为空.
exec 5>&4      #用exec打开文件描述符5的输出重定向到文件描述符4中,>&两边必须是数字,,也就是文件描述符的数字
date 1>&5      #date的标准也输出重定向到文件描述符5,此时date的输出实际上是重定向给了文件描述符4,5起了过度的作用,此时的out.txt文件里存放就是date的输出信息.
exec 6>&0      #???,:ask
exec 4>-       #用exec关闭文件描述符4,就是完成了对文件out.txt的操作
有关重定向的,这里有个表:
http://www.linuxsir.cn/bbs/showthread.php?threadid=68860
 楼主| 发表于 2004-2-23 00:04:23 | 显示全部楼层
那当我bash执行下列命令后,
exec 4>out.txt;exec 5>&4;exec 1>&5;date
所有的命令输出都到了out.txt了.

如何恢复正常显示?
发表于 2004-2-23 00:41:56 | 显示全部楼层
exec 1<&0
把标准输出重新定向到标准输出!
发表于 2004-2-23 08:58:22 | 显示全部楼层
如此复杂的 exec 用法一般在源码安装包的 configure 脚本中可以看到,最权威的解释还是看 bash 的 manual
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表