• 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
  • 相关阅读:
    【BZOJ1046】上升序列(动态规划,贪心)
    【BZOJ1052】覆盖问题(贪心)
    【BZOJ3293】分金币(贪心)
    【BZOJ1045】糖果传递(贪心)
    【BZOJ1029】建筑抢修(贪心)
    【BZOJ3534】重建(矩阵树定理)
    【BZOJ2654】Tree(凸优化,最小生成树)
    【CF125E】MST Company(凸优化,最小生成树)
    【BZOJ4027】兔子与樱花(贪心)
    【UOJ#80】二分图最大权匹配(KM)
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1932007.html
Copyright © 2020-2023  润新知