zoukankan      html  css  js  c++  java
  • linux中的标准输出和输入

    ===============1.有些人经常问我这个问题问题===========

    经常在脚本里面看到这个    2>&1     表示什么意思啊?

    ==============2.理论==========================

    在linux中,每个进程都会有三个文件,并且这三个文件会进行重定向处理:

    /dev/stdin          ----->/proc/self/fd/0             //表示标准输入,即键盘输入

    /dev/stdout        ----->/proc/self/fd/1     //表示标准输出,即显示屏,屏幕

    /dev/stderr         ---->  /proc/self/fd/2           //表示标准错误输出,有些脚本运行时会报错,就会输入到这。

     你看到的2>&1中的数字就是上面重定向后的数字。

    0: 表示键盘输入

    1:将信息输入到屏幕(一般linux命令都是默认为1)

    2:将信息输入到错误输出

    ===================3.举个栗子====================

    在终端中写一个sh文件

    >>>>>>>>>>>>>>

    $cat  demo.sh

    #!/bash/bin

    xxxx

    date

    <<<<<<<<<<<<<<

    执行这个sh文件,并将输出到demo.log中

     ./demo.sh > demo.log
    ./demo.sh: line 2: xxxx: command not found

    由于xxxx不是linux命令会报错,并且将错误信息输出到屏幕(标准输出),而date是linux

    命令,会正确输出,并将正确的信息输出到demo.log文件中

    cat demo.log
    Sat Mar  5 09:49:11 HKT 2016

    ==============4.再回头看最开始的问题============

    2>&1  意思就很明了了,就是讲执行linux命令时的错误信息也输出到屏幕上。

     ./demo.sh 2>&1
    ./demo.sh: line 2: xxxx: command not found
    Sat Mar  5 09:57:09 HKT 2016

    ===============收工======================

  • 相关阅读:
    设置导航栏标题颜色及字体大小
    FMDB的简单实用
    iPhone越狱
    P1122 最大子树和
    UVA11090 Going in Cycle!!
    P1156 垃圾陷阱
    P1325 雷达安装
    P1038 神经网络
    P2922 [USACO08DEC]秘密消息Secret Message
    P2292 [HNOI2004]L语言
  • 原文地址:https://www.cnblogs.com/horizonli/p/5244180.html
Copyright © 2011-2022 走看看