在Bash脚本中,是否可以在“尚未使用的编号最小的文件描述符”上打开文件?
我已经找到了如何做到这一点,但似乎Bash总是要求你指定的数字,例如。喜欢这个:
exec 3< /path/to/a/file # Open file for reading on file descriptor 3.
相比之下,我想能够做一些事情
my_file_descriptor=$(open_r /path/to/a/file)
这将打开“文件”以读取尚未使用的编号最小的文件描述符,并将该编号分配给变量“my_file_descriptor”。
我知道这个线程是老的,但相信最好的答案是缺少,并将对那些来到这里寻找解决方案的人有用。
Bash和Zsh内置的方式来找到未使用的文件描述符,而不必编写脚本。 (我发现没有这样的事情破折号,所以上面的答案可能仍然有用。)
注意:这找到最低的未使用文件描述符> 10,不是最低的整体。
$ man bash /^REDIRECTION (paragraph 2) $ man zshmisc /^OPENING FILE DESCRIPTORS
示例使用bsh和zsh。
打开一个未使用的文件描述符,并将编号分配给$ FD:
$ exec {FD}>test.txt $ echo line 1 >&$FD $ echo line 2 >&$FD $ cat test.txt line 1 line 2 $ echo $FD 10 # this number will vary
完成后关闭文件描述符:
$ exec {FD}>&-
下面显示文件描述符现在已关闭:
$ echo line 3 >&$FD bash: $FD: Bad file descriptor zsh: 10: bad file descriptor
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。