zoukankan      html  css  js  c++  java
  • Linux中2>&1使用

    转:2>&1使用

    一 相关知识

    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

    ***********************************************************

     学习永远不晚。——高尔基

    ***********************************************************

  • 相关阅读:
    最短路径 一 Dijkstra 模板(O(n^2))
    【转】STL中的set容器的一点总结
    水题 等差数列HDU 5400 Arithmetic Sequence
    贪心+等价转化 HDU 1489
    POJ 3258 最小值最大化 二分搜索
    【转】二分查找算法学习札记
    UVa 714 Copying books 贪心+二分 最大值最小化
    湖南程序设计竞赛赛题总结 XTU 1237 Magic Triangle(计算几何)
    并查集基础 模板题 hdu1232 畅通工程
    数论 最简分数 Farey序列求最简分数+POJ3374
  • 原文地址:https://www.cnblogs.com/chengd/p/7808300.html
Copyright © 2011-2022 走看看