zoukankan      html  css  js  c++  java
  • unixstdin/stdout/stderr

    标准输入和输出重定向

    外壳和许多UNIX命令采取其输入标准输入( stdin ),写输出到标准输出  stdout ),写错误输出到标准错误  stderr )。 默认情况下,标准输入连接到终端键盘和标准输出和错误到终端屏幕。

    的,显示方式结束的终端文件在默认的标准输入,通常是<Ctrl-d>。

    本人重定向的输入/输出,例如一个文件,是通过指定的目的地的目的地所需的命令行使用重定向元字符后跟。

    C Shell的家庭

    为C shell的重定向形式家庭的有:

    字符

    行动

    >

    重定向标准输出

    >&

    重定向标准输出和标准错误

    <

    重定向标准输入

    >!

    重定向标准输出;覆盖文件,如果它存在

    >&!

    重定向标准输出和标准错误;覆盖文件,如果它存在

    |

    标准输出重定向到另一个命令(管)

    >>

    附加标准输出

    >>&

    附加标准输出和标准错误

    一个标准的输入和输出重定向命令的形式是:

    命令 - [ 参数 ] [ 选项 ] < 输入文件 >“ 输出文件
    

    如果你正在使用csh和没有noclobber变量设置,使用>>&重定向输出将覆盖任何现有文件的名称。 设置noclobber可防止这种情况。 >!>&!总是势力文件被覆盖。 使用>>>>&输出追加到现有文件。

    重定向可能失败在某些情况下:1)如果您有变量noclobber设置和您尝试将输出重定向到一个现有的文件,而不强迫一个覆盖,2)如果您重定向输出到一个文件,你没有写访问,并3)如果您将输出重定向到一个目录。

    例子:

    % who > names

    标准输出重定向到文件名为names

    % (pwd; ls -l) > out

    这两个命令的输出重定向到文件名为out

    % pwd; ls -l > out

    重定向输出ls命令只对文件名为一out

    输入重定向可以是有用的,例如,如果你写一个Fortran程式,它期望从终端输入,但你希望它从文件中读取。 在下面的例子, myprog ,这是写标准输入读取和写入标准输出重定向到读myin和写入myout 

     %myprog <myin> myout 
    

    您可以取消发送到空设备重定向输出和/或错误导致的, /dev/null  这个例子显示了两个输出和错误重定向:

     %谁“&/ dev / null的 
    

    要重定向标准错误和输出到不同的文件,您可以使用分组:

     %(猫myfile的> myout)“&myerror 
    

    Bourne Shell的家庭

    Bourne shell的重定向使用一个不同的格式,其中包括数字。 这些数字指的是文件描述符数字(0标准输入,1标准输出,2标准错误)。 例如, 2>重定向文件描述符2,或标准错误。 & n是文件语法重定向到一个特定的开放。 例如2>&1重定向2(标准误差)到1(标准输出),如果一已被重定向到一个文件,二去那里了。 其他文件描述符号码顺序分配给其他打开的文件,也可以在shell脚本中明确地引用。 为Bourne shell的家庭重定向形式有:

    字符

    行动

    >

    重定向标准输出

    2>

    重定向标准错误

    2>&1

    标准错误重定向到标准输出

    <

    重定向标准输入

    |

    管另一个命令的标准输出

    >>

    附加到标准输出

    2>&1|

    管标准输出和标准错误到另一个命令

    请注意, <>假设标准输入和输出,分别为默认,所以关闭数字0和1可离开。 一个标准的输入和输出重定向命令的形式是:

     $ 命令 - [ 选项 ] [ 参数 ] < 输入文件 >“ 输出文件
    

    重定向可能失败在某些情况下:1)如果您有变量noclobber设置和您尝试将输出重定向到一个现有的文件,而不强迫一个覆盖,2)如果您重定向输出到一个文件,你没有写访问,并3)如果您将输出重定向到一个目录。

    例子:

    $ who > names

    直接输出到文件的标准命名的names

    $ (pwd; ls -l) > out

    这两个命令直接输出到文件名为out

    $ pwd; ls -l > out

    直接输出ls命令只对文件名为一out

    输入重定向可以有用的,如果你写一个程序,它期望从终端输入你想提供的文件中。 在下面的例子, myprog ,这是写标准输入读取和写入标准输出重定向到读myin和写入myout 

     $ myprog <myin> myout 
    

    您可以取消发送到空设备重定向输出和/或错误, /dev/null  这个例子显示了错误的唯一标准的重定向:

    谁$ 2“/ dev / null的 
    

    要重定向标准错误和输出(注意,分组在Bourne shell没有必要)不同的文件:

     $猫myfile的> myout 2> myerror
  • 相关阅读:
    【bootstrapV3】移动端和PC端的 滚动监听
    【TP3.2】TP3.2的 FIND_IN_SET()的用法
    【jquery】多日期选择插件easyui date
    【onethink1.0】HTML模板获取前台和后台当前登录用户名
    【apache】phpstudy中apache 隐藏入口文件index.php (解决no input file specified错误)
    【PHP+JS】uploadify3.2 和 Ueditor 修改上传文件 大小!!
    【原创+亲测可用】JS如何区分微信浏览器、QQ浏览器和QQ内置浏览器
    【JS】移动端 好用的分享插件 soshm.js
    【TP3.2.X】linux环境下TP3.2.X的各个目录权限
    【php+微擎】微擎学习相关帮助推荐
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1932007.html
Copyright © 2011-2022 走看看