zoukankan      html  css  js  c++  java
  • 呈现数据

    标准文件描述符

    1.linux系统将每个对象当做文件来处理,每一个过程一次最多可以有9个文件描述符。

    文件描述符    缩写 描述
    0 STDIN 标准输入
    1 STDOUT 标准输出 
    2 STDERR 标准错误

    STDIN文件描述符代表shell的标准输入。对终端界面来说,标准输入就是键盘。

    在使用输入重定向符号(<)时,linux会用重定向指定的文件来替换标准输入文件描述符。。

    注意:在命令行上只输入cat命令时,它会接受STDIN的输入。当你在每行输入时,cat命令会将每行显示在输出中。

    STDOUT

    STDOUT文件描述符代表标准的shell输出。对于终端界面,标准输出就是终端显示器。

    ls -l > testfile

    输出重定向到文件,会覆盖文件中的原有内容。

    将数据追加到某文件。可以用">>"符号来完成:

     who >> testfile

    STDERR

    shell通过特殊的STDERR文件描述符来处理错误消息。

    重定向错误

    1.只重定向错误

    我们知道STDERR文件描述符被设成2.    只重定向错误消息,将该文件描述符值放在重定向符号前,该值必须紧紧地放在重定向符号前。否则不会工作。

    ls -al badfile 2> testfile

    2.重定向错误和数据

    如果你想重定向错误和正常输出,必须使用两个重定向符号。你需要在想要重定向的每个数据前添加对应的文件描述符,并将它们指向对应的保存数据的输出文件。

     ls -al for_test  myprog test1 test2 2> testfile  1> test3

    上面就是,把错误信息输出到testfile中,正确数据输出到test3中

    可以利用该方法将脚本的正常输出和脚本生成的错误消息分离开来。

    如果将STDERR和STDOUT的输出重定向到同一个输出文件。为此shell提供了特殊的重定向符号&>

    ls -al for_test  myprog test1 test2 &> testfile


    当使用&>符时,命令生成的所有输出都会发送到同一位置,包括数据和错误。

    注意:bash shell会自动给错误信息分配较标准输出来更高的优先级。(你会发现错误消息在一处,不用翻遍整个输出文件)

    如果在脚本中生成错误消息,可以将单独的一行输出重定向到STDERR。你可以利用输出重定向符来将输出重定向到STDERR文件描述符。

    在重定向到文件描述符时,你必须在文件描述符数字之前加一个(&):

    echo "This is an error" >&2

    记住:默认情况下linux会将STDERR定向到STDOUT。

    正常运行脚本文件,没有啥区别

    ./test8 2> test9

    这样的脚本中所有定向到STDERR的文本都会被重定向。

    永久重定向

    如果脚本中有大量数据需要重定向,那重定向每个echo语句就会很烦琐。用exec命令告诉shell在脚本执行期间重定向某个特定文件描述符。

    如:

    exec 1>testout
    
    echo "This is a test of redirecting all output"
    echo "from a script to another file."
    echo "without having to redirect every individual line"

    exec命令会启动一个新shell并将STDOUT文件描述符重定向到文件。

  • 相关阅读:
    (转)学习笔记viewController(欢迎指错)
    配置Xcode版本控制SVN详细步骤内含解决Xcode/Mac OS10.8无法配置SVN的解决方法(转)
    iPhone 3G/3GS(有锁)基带与导航功能
    [转]Iphone 3G/3Gs Home键失灵的根本原因和解决方法
    NSDate的常用用法(转)
    短信操作(转)
    如何在Symbian SDK下使用GCCE4(转)
    nS60_sdk_v1_2的VC6问题(转)
    如何获取应用程序图标(转)
    如何实现圆角的UITextView iphone短信发送(非系统界面)
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6288056.html
Copyright © 2011-2022 走看看