一 相关知识

1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |)。

2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。

3) 默认地,标准的错误输出到终端,但是也可以重定向到文件。

4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示。

5)其实除了以上常用的3中文件描述符,还有3~9也可以作为文件描述符。3~9你可以认为是执行某个地方的文件描述符,常被用来作为临时的中间描述符。

二 实例

1)command 2>errfile : command的错误重定向到文件errfile。

2)command 2>&1 | ...: command的错误重定向到标准输出,错误和标准输出都通过管道传给下个命令。

3)var=`command 2>&1`: command的错误重定向到标准输出,错误和标准输出都赋值给var。

4)command 3>&2 2>&1 1>&3 | ...:实现标准输出和错误输出的交换。

5)var=`command 3>&2 2>&1 1>&3`:实现标准输出和错误输出的交换。

6)command 2>&1 1>&2 | ...     (wrong...) :这个不能实现标准输出和错误输出的交换。因为shell从左到右执行命令,当执行完2>&1后,错误输出已经和标准输出一样的,再执行1>&2也没有意义。

三 "2>&1 file"和 "> file 2>&1"区别

1)cat food 2>&1 >file :错误输出到终端,标准输出被重定向到文件file。

2)cat food >file 2>&1 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以也错误输出到文件file。

四 注意

通常打开的文件在进程推出的时候自动的关闭,但是更好的办法是当你使用完以后立即关闭。用m<&-来关闭输入文件描述符m,用m>&-来关闭输出文件描述符m。如果你需要关闭标准输入用<&-; >&- 被用来关闭标准输出。

五 同时输出到终端和文件 copy source dest | tee.exe copyerror.txt

最新文章

  1. Windows Azure Virtual Machine (32) 如何在Windows操作系统配置SFTP
  2. 【BZOJ-1863】trouble 皇帝的烦恼 二分 + DP
  3. linux截图工具scrot
  4. FFMPEG视音频编解码零基础学习方法
  5. 微信开发python+django两个月的成功经历,django是个好框架!
  6. Ajax简单应用-购物车
  7. ui原则
  8. 何查询SQL Server数据库没有主键的表并增加主键
  9. PyQuery用法详解
  10. Android输入控件详解
  11. Python3.4 + Django1.7.7 搭建简单的表单并提交
  12. springboot集成下,mybatis的mapper代理对象究竟是如何生成的
  13. 微软消息队列-MicroSoft Message Queue(MSMQ)队列的C#使用
  14. Fedora 23 U盘启动出现“Failed to load ldlinux.c32”解决 ZT
  15. Python中通过threshold创建mask
  16. Django基础篇--模板和路由分发
  17. 运行第一个Docker容器-Docker for Web Developers(1)
  18. python实现Telnet远程登陆到设备并执行命令
  19. 查看LINUX 系统硬件等详细信息
  20. TObjectList

热门文章

  1. 【LeetCode】1423. 可获得的最大点数 Maximum Points You Can Obtain from Cards (Python)
  2. 【九度OJ】题目1113:二叉树 解题报告
  3. 【LeetCode】940. Distinct Subsequences II 解题报告(Python)
  4. 1632 B君的连通
  5. Hive SQL优化思路
  6. 据库自增ID用完
  7. Chapter 11 Why Model ?
  8. uniapp中scroll-view自定义滚动条
  9. centos6.5-搭建Apache
  10. Pond Skater