linux中exec操作文件描述符


本文摘自PHP中文网,作者ringa_lee,侵删。

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脚本中重新关联标准输出,从而记录日志到指定文件

1

2

3

4

5

6

7

#!/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命令关联文件描述符到文件的时候区别使用 > 或 >>,
    例有如下脚本:

    阅读剩余部分

    相关阅读 >>

    如何修改一个磁盘的属性或者明细

    Linux怎么查看用户信息

    Linux修改主机名命令

    Linux下9种优秀的代码比对工具【推荐】

    如何在ecs 管理控制台上使用实例创建自定义镜像

    Linux】 memcache安装与基本使用教程

    关于Linux下如何创建共享文件夹的实例详解

    Linux中关于traceroute命令的使用详解

    centos7系统如何打开文件

    Linux .权限不够怎么办

    更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...