zoukankan      html  css  js  c++  java
  • shell 12输入输出重定向

    1. shell输入/输出重定向

    unix系统命令从终端接受输入并将产生的输出发送回终端。命令读取输入的地方,为标准输入,默认是终端;命令的输出,为标准输出,默认也是终端;命令的标准错误,默认也是终端。
    
    • command > file 将输出重定向到 file,等价与tee 。
    • command < file 将输入重定向到 file。
    • command >> file 将输出以追加的方式重定向到 file,等价于tee -a。
    • n > file 将文件描述符为 n 的文件重定向到 file。
    • n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
    • n >& m 将输出文件 m 和 n 合并。
    • n <& m 将输入文件 m 和 n 合并。
    • << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
      注意:文件描述符 0是标准输入STDIN,1是标准输出STDOUT,2是标准错误STDERR

    2. 输出重定向

    • command1 > file1,如top>text.txt 执行后,会将结果保存到text.txt文件,而非输出到终端。
    • command1 >> file1 ,不希望文件内存被覆盖,可以使用>>将command2的结果追加到file1文件

    3. 输入重定向

    • command1 < file1 从文件获取输入

      command1 < infile > outfile
      同时替换输入和输出,执行command1,从文件infile读取内容,然后将输入写入到outfile

    4. 重定向深入讲解

    • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
    • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
    • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
      command > file 将标准输出重定向到file
      command < file 将标准输入重定向到file
      如果希望标准错误重定向到file,就 command 2 > file ,command 2 >> file
      如果希望将标准输出和标准错误合并后重定向到file,就command > file 2 > &1,command >> file 2 >&1

    5.Here Document

    Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。形式是:

    #shell
    command << delimiter
        document
    delimiter
    

    它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
    注意:
    * 结尾的delimiter 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。
    * 开始的delimiter前后的空格会被忽略掉。

    #shell
    #!/bin/bash
    wc -l << EOF
    	hello world
    	hello java
    	hello ruby
    EOF
    

    3

    6. /dev/null文件

    如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
    command > /dev/null
    /dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
    

    如果希望屏蔽 stdout 和 stderr,可以这样写:
    command > /dev/null 2>&1

    7. &

    command > file 2>&1
    放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,2>1代表将标准错误重定向到文件描述符为1的文件

  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/csj2018/p/9602062.html
Copyright © 2011-2022 走看看