Linux中高级I/O 重定向的符号及其用法

3186阅读 0评论2011-10-05 
分类:Python/Ruby

  

符号

意义

n>&m

FDm的输出复制到FDn的文件中

n<&m

FDm的输入复制到FDn的文件中

n>&-

关闭FDn的输出

n<&-

关闭FDn的输入

&>file

将标准输入和标准错误输出到重定向到文件

举例:
  1. [root@localhost shell]# vi execerr
  2. 1 #!/bin/sh
  3. 2 exec 8>&1 9>&2   #将FD 1 复制到FD 8,将FD 2 标准错误输出复制到FD 9
  4. 3 exec &> loggg    #将标准和错误输出定向到文件loggg
  5. 4 ls z*
  6. 5 date
  7. 6 exec 1>&8 2>&9 8<&- 9<&- #恢复标准输入和标准错误输出 并关闭FD 8和9
  8. 7 echo "##################"
  9. 8 echo "Close FD 8 and 9 : "  #测试输出和错误输出是否恢复现状
  10. 9 ls z*
  11. 10 date
  12. [root@localhost shell]# sh execerr
  13. ##################
  14. Close FD 8 and 9 : 
  15. ls: cannot access z*: No such file or directory
  16. Wed Oct  5 19:20:13 CST 2011
  17. [root@localhost shell]# cat loggg
  18. ls: cannot access z*: No such file or directory
  19. Wed Oct  5 19:20:13 CST 2011
上一篇:Linux中基本I/O 重定向的符号及其用法和文件标识符
下一篇:“随时、随性、随遇、随缘、随喜”