command 2>&1

转载 2016年08月30日 19:54:59
一 相关知识

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)http://docstore.mik.ua/orelly/unix/upt/ch45_21.htm
2)http://www.unix.com/shell-programming-scripting/34011-meaning-dev-null-2-1-a.html
3)http://docstore.mik.ua/orelly/unix/upt/ch08_13.htm

Linux shell : Command 2>&1

之前看到如下shell 命令,一头雾水: ls temp >list.txt  2>&1 ls temp >/dev/null  2>&1 查阅之后,明白此语句含义,特此记录. ...
  • hpf911
  • hpf911
  • 2012年08月08日 14:39
  • 1507

DB2 的REORG_学习(1)_REORG INDEXES/TABLE Command

最近写一个DB2的REORG的脚本,因为以前在mysql里面是没有接触过这个REORG的,所以系统了解一下,我的学习的话是先从命令入手,看看这个名的结构,然后还有选项,这些选项会揭示一些这个命令能干什...

让Command1带进度条的软件源码

  • 2011年04月09日 18:24
  • 2KB
  • 下载

iOS 打包提示 Command/usr/bin/codesign failed with exit code 1 并且钥匙串中证书全部无效的解决方案

一、问题描述 由于苹果的根证书失效打企业包时发现提示报错 1akis25FC97FA851693DEEB23A01AD91B2D0ro09: no identity found Com...
  • jiisd
  • jiisd
  • 2016年02月17日 19:40
  • 3233

ASMLib: oracleasm createdisk command fails: Device '/dev/emcpowera1 is not a partition

悲催的一天,在redhat linux 5.4上搭建oracle10g rac,多路径软件为EMC PowerPath5.3在安装搞asm的时候连续遇到问题,先是在运行/etc/init.d/orac...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:command 2>&1
举报原因:
原因补充:

(最多只允许输入30个字)