教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 (原创)shell中自定义文件描述符的方法介绍

(原创)shell中自定义文件描述符的方法介绍

发布时间:2014-09-29   编辑:jiaochengji.com
文件描述符是用于访问文件的一个抽象指针。存取文件离不开被称为“文件描述符”告的特殊数字。0、1和2分别是stdin、stdout和stderr的预留描述符。

原创文章,转载请注明出处:教程集,否则追究法律责任。教程集首发!
作者:isbadboy

文件描述符是用于访问文件的一个抽象指针。存取文件离不开被称为“文件描述符”告的特殊数字。0、1和2分别是stdin、stdout和stderr的预留描述符。
我们可以使用exec命令创建自定义的描述符。如果你对其他编程语言进行文件编程非常熟悉,你可能已经注意到了文件打开模式。通常来说,会使用3种模式。
只读模式。
截断模式。
追加模式。

<操作符用于从文件中读取至stdin 。>操作符用于截断模式的文件写入(数据在目标文件内容被截断之后写入)。>>操作符用于追加模式的文件写入(数据被追加到文件的现有内容中,而且该目标文件中原有的内容不会丢失)。文件描述符可以用以上三种模式中的任意一种来创建。

为读取文件创建一个文件描述符:
$ exec 3<input .txt # 使用文件描述符3打开并读取文件

我们可以这样使用它:
 

复制代码 代码如下:
$ echo this is a test line > input.txt
$ exec3 <input.txt

现在你就可以在命令中使用文件描述符3了。例如:
 

复制代码 代码如下:
$ cat <&3
this is a test line

如果要再次读取,我们就不能再继续使用文件描述符3了,而是需要用exec重新分配文件描述符3以便用于读取。
创建一个文件描述符用于写入( 截断模式):
$ exec 4>input .txt # 打开文件用于写入

例如:
 

复制代码 代码如下:
$ exec 4>input .txt
$ echo newline >&4
$ cat output.txt
newline

创建一个文件描述符用于写入(追加模式):
$ exec 5 >>input .txt

例如:
 

复制代码 代码如下:
$ exec 5 >>input .txt
$ echo appended line >&5
$ cat input.txt
newline
appended line

您可能感兴趣的文章:
(原创)shell中自定义文件描述符的方法介绍
shell脚本学习指南之输入输出与文本执行(图文)
shell程序设计教程(1)
inux shell初级入门教程
shell内部命令使用详解
为shell编程新手准备的教程
什么是BFC和hasLayout?
深入解析tcsh的初始化配置文件
linux shell通配符、特殊符号与文件描述符
linux shell变量解析

[关闭]
~ ~