zoukankan      html  css  js  c++  java
  • shell脚本学习总结01--文件描述符和重定向

     文件描述符是与文件输入和输出的相关联的整数,它们用来追踪已打开的文件,文件描述符0,1,2是系统预留的。

        0 --> stdin (标准输入)

        1 --> stdout (标准输出)

        2 --> stderr (标准错误)

    $ echo a1>a1
    $ cp a1 a2;cp a2 a3
    $ cat a*
    cat: a1: Permission denied
    a1
    a1

    将0定向到std.txt,将2定向到err.txt

    $ cat a* >std.txt 2>err.txt

    将0和1都定向到out.txt

    $ cat a* >out.txt 2>&1.txt

    tee命令

      将stdin重定向到文本中并且在屏幕打印出来。

    $ cat a*|tee out.txt
    cat: a1: Permission denied
    a1
    a1
    $ cat out.txt 
    a1
    a1

    注意:out.txt并不包含“cat: a1: Permission denied”,因为它只能从stdin中进行读取。

    默认的tee命令会将文件覆盖,但提供一个-a的选项用于追加。

    $ cat a*|tee -a out.txt

    重定向脚本内部的文本块
    #/bin/bash
    sqlplus /nolog <<EOF >log.txt
    conn scott/tiger
    select * from cat;
    commit;
    exit
    EOF
    
    

    <<EOF >log.txt和EOF之间的内容会被当做stdin,stdout会被重定向到log.txt。

    自定义文件描述符

    •  创建一个文件描述符用于写入
    $ exec 4>output.txt
    $ echo newline >&4
    $ cat output.txt 
    newline
    • 创建一个文件描述符用于读取
    
    
    $ echo hello >input.txt 
    $ exec 3<input.txt $ cat <&3 hello
    
    
    
     
  • 相关阅读:
    KKT条件原理
    拉格朗日乘子法
    Java volatile详解
    Java重排序
    Java Socket NIO入门
    Java Socket入门
    TCP三次握手,四次挥手
    Java NIO详解
    cobbler批量安装系统
    nginx详解反向代理,负载均衡,LNMP架构上线动态网站
  • 原文地址:https://www.cnblogs.com/zydev/p/5725121.html
Copyright © 2011-2022 走看看