原创文章,转载请注明出处:脚本学堂,否则追究法律责任。脚本学堂首发!
作者:isbadboy
文件描述符是用于访问文件的一个抽象指针。存取文件离不开被称为“文件描述符”告的特殊数字。0、1和2分别是stdin、stdout和stderr的预留描述符。
我们可以使用exec命令创建自定义的描述符。如果你对其他编程语言进行文件编程非常熟悉,你可能已经注意到了文件打开模式。通常来说,会使用3种模式。
只读模式。
截断模式。
追加模式。
<操作符用于从文件中读取至stdin 。>操作符用于截断模式的文件写入(数据在目标文件内容被截断之后写入)。>>操作符用于追加模式的文件写入(数据被追加到文件的现有内容中,而且该目标文件中原有的内容不会丢失)。文件描述符可以用以上三种模式中的任意一种来创建。
为读取文件创建一个文件描述符:
$ exec 3<input .txt # 使用文件描述符3打开并读取文件
我们可以这样使用它:
现在你就可以在命令中使用文件描述符3了。例如:
如果要再次读取,我们就不能再继续使用文件描述符3了,而是需要用exec重新分配文件描述符3以便用于读取。
创建一个文件描述符用于写入( 截断模式):
$ exec 4>input .txt # 打开文件用于写入
例如:
创建一个文件描述符用于写入(追加模式):
$ exec 5 >>input .txt
例如: