使用文件描述符fd
时间:2019-04-16 23:59:05 来源:igfitidea点击:
文件描述符0、1和2分别保留给stdin、stdout和stderr。
但是,bash shell允许您将文件描述符分配给输入文件或输出文件。这样做是为了提高文件的读写性能。这称为用户自定义的文件描述符。
将文件描述符(fd)分配给文件进行输入
将文件描述符分配给输入文件,使用以下语法:
exec fd< input.txt
fd 需要大于等于3
示例
#!/bin/bash # 为输入文件分配文件描述符 exec 3< /etc/resolv.conf # 执行cat命令并从文件描述符3中读取输入 即从文件/etc/resolv.conf中读取 cat <&3 # 关闭文件 exec 3<&-
将文件描述符(fd)分配给文件进行输出
可以使用以下语法将文件描述符分配到输出文件:
语法
exec fd> output.txt
fd 需要大于等于3
示例
#!/bin/bash # 为输出文件分配文件描述符 # 文件描述符3 对应output.txt exec 3> /tmp/output.txt # 执行echo命令并将输出发送到文件描述符3 即将结果写入/tmp/output.txt echo "This is a test" >&3 # 将date命令的输入写入到 fd # 3 date >&3 # 关闭3号文件描述符 exec 3<&-
shell关闭文件描述符(fd)
语法:
exec fd<&-