在Bash中,如何找到最小编号的未使用的文件描述符?

前端之家收集整理的这篇文章主要介绍了在Bash中,如何找到最小编号的未使用的文件描述符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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

猜你在找的Bash相关文章