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
  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1932007.html
Copyright © 2011-2022 走看看