zoukankan      html  css  js  c++  java
  • Bash内置命令exec和重定向

    转:Bash内置命令exec重定向

    Bash内置命令exec可以替换当前程序而不需要启动一个新的进程,可以改变标准输入和输出而不需要启动一个新的子进程。
    如果文件用exec打开,read命令就会把文件指针每次指向下一行直到文件的末尾,如果要重新从文件开始读取,则必须把文件关闭再重新打开。

    1、替换当前shell,执行某个命令,命令终止,shell也就终止了
    $exec ls

    2、打开文件作为当前shell的标准输入
    $exec <file_name

    3、打开文件作为当前shell的标准输出
    $exec >file_name

    4、打开文件作为输入,并分配文件描述符
    $exec 3<datafile

    5、打开文件作为输出,并分配文件描述符
    $exec 4>datafile

    6、创建文件描述符fd4的拷贝fd5
    $exec 5<&4

    7、关闭文件描述符
    $exec 3<&- //关闭输入文件描述符
    $exec 4>&- //关闭输出文件描述符

    注意: <&和重定向操作符>&、&>的区别

    例子:

    $exec 3>filex //打开文件filex并分配文件描述符3,作为输出
    $who >& 3 //who命令的输出输出到filex
    $date >& 3 //date命令的输出输出到filex
    $exec 3>&- //关闭filex
    $exec 3<filex //重新打开文件filex并分配文件描述符3,作为输入
    $cat <& 3 //重定向cat命令的输入到文件描述符3,即文件filex
    $exec 3<&- //关闭filex

    ***********************************************************

     学习永远不晚。——高尔基

    ***********************************************************

  • 相关阅读:
    一维数组的相关问题
    逗号表达式
    三目表达式
    前自增和后自增的比较
    关于Spring中的PagedListHolder分页类的分析
    fmt:formatDate标签的输出格式
    用java流方式判断文件类型
    常用文件的文件头(附JAVA测试类)
    jsp页面判断文件上传类型
    spring MVC上传文件演示
  • 原文地址:https://www.cnblogs.com/chengd/p/7808291.html
Copyright © 2011-2022 走看看