• 技术文章 >运维 >linux运维

    linux中exec操作文件描述符

    ringa_leeringa_lee2017-06-23 11:21:35原创1332
    linux每一个打开文件都会关联一个文件描述符,需要的时候我们可以使用exec命令指定一个大于3的数字作为文件

    linux默认文件描述符

    每打开一个shell就会打开默认的三个文件描述符描0,1,2,分别代表标准输入,标准输出和标准错误输出。

    exec命令关联文件描述符

    exec 5>/tmp/a.txt 读方式
    exec 5</tmp/a.txt 写方式
    exec 5<>/tmp/a.txt 读写方式
    exec 5<&-;exec5>&- 关闭文件描述符

    应用案例:在shell脚本中重新关联标准输出,从而记录日志到指定文件

    #!/bin/bash
    exec 4>&1         #用4记录标准输出
    exec 1>/tmp/abc   #重定向标准输出
    echo "123"
    echo "456"
    exec 1>&4         #恢复标准输出
    exec 4>&-         #关闭4

    运行此脚本,脚本中的echo输出会输出到/tmp/abc文件中
    脚本第二行用4>&1 是为了记录标准输出的文件描述符便于执行完毕后恢复标准输出,恢复标准输出也可以用exec 1>/dev/tty

    注意点:

    1. echo "hello" >&4 向文件描述符中输入内容只使用 > 不能用 >> ,此时的 > 不会清空文件

    2. 是否清空文件需要在exec命令关联文件描述符到文件的时候区别使用 > 或 >>,
      例有如下脚本:

      #!/bin/bash
      exec 4>/tmp/abc
      echo "123" >&4
      echo "456" >&4
      exec 4>&-

      则每次执行完脚本后/tmp/abc文件内容都是123\n456
      若把第二行换成exec 4>>/tmp/abc则会追加进去

    以上就是linux中exec操作文件描述符的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux exec 描述 操作 文件
    上一篇:linux+Nginx+Mysql+Php图示,操作步骤详解! 下一篇:在VMware上安装ubuntu,并且SecureCRT远程连接
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• linux怎么查询mysql的版本信息• linux创建文件失败的原因有哪些• linux netmask是什么• Linux高频面试问题:查找大文件并安全清除• linux中环境变量在哪个文件
    1/1

    PHP中文网