zoukankan      html  css  js  c++  java
  • 有关linux标准输出、标准输入、标准错误的重定向问题

    1、简单的命令行重定向问题。

      例:ls  -al  test   test1  test2    1>out.txt  2>err.tx

      这里ls这句命令行命令之后将标准输入重定向到out.txt中,标准错误重定向到err.txt中。

    2、文件中临时重定向题

      例:$  cat   test1

        #!/bin/bash

        #!关于测试临时重定向问题

        echo  "This is  an error!" >&2   #将这句话临时重定向为标准错误

        echo  "This  is  normal  output! "

       正常运行这个脚本:./test1

      结果为:This is an error!

          This is normal output!

      这看不出什么区别,那么来看下面这样运行:./test1  1>out.txt  2>err.txt

      结果终端界面上不会出现脚本的运行结果,这里把标准输入重定向到out.txt中,标准错误重定向到err.txt中,而脚本中将“This is an error!"

      这句话临时重    定向为标准错误,而脚本中正常的输出为”This is normal output!“ 。所以分别cat  out.txt和cat err.txt两个文件即可发现脚本中的两句话。

    3、永久重定向

      如果脚本中有大量的数据需要重定向,那么按上面的方法,一句一句来会很麻烦,那来看下面的例子

      例:$ cat  test2

        #!/bin/bash

        #!关于批量永久重定向

        exec  2>err.txt  #将本脚本中的标准输出永久重定向到out.txt中

        echo " This  is just a testing!"

        echo "HaHa!"

        exec  1>out.txt  #以下内容中标准输出重定向到out.txt

        echo  "Now the testing is over!"

        echo " This is a testing error!" >&2

      然后运行脚本  ./test2

      结果为:This is just a testing!

          HaHa!

      其余两句我们分别可以在out.txt和err.txt中见到,脚本中将“This is a testing error!"临时重定向为了标准错误,因此脚本将其重定向到了err.txt。

      这就是批量永久重定向。

    4、在脚本中重定向输入

      例: $  cat  test3

        #!/bin/bash

        #!测试脚本中输入重定向

        exec 0<input.txt  #将input.txt中的内容作为输入重定向到脚本中

        count=1

        while read line

        do 

          echo  "#$count :$line "

          count=$(($count+!))

        done

      这个可以用于批量读入文件等地方,很多都可以用。

  • 相关阅读:
    手打的table
    高质量程序设计指南C/C++语言——C++/C程序设计入门(2)
    高质量程序设计指南C/C++语言——C++/C程序设计入门
    int *p = NULL 和 *p = NULL(转载)
    C语言深度剖析---预处理(define)(转载)
    C语言--union关键字(转载)
    C语言深度剖析--volatile(转载)
    C语言深度剖析---const关键字(转载)
    C语言循环剖析(转载)
    main函数的参数问题 (转载)
  • 原文地址:https://www.cnblogs.com/jxmlover/p/3170539.html
Copyright © 2011-2022 走看看