加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 16:13:14 所属栏目:安全 来源:网络整理
导读:在Bash脚本中,是否可以在“尚未使用的编号最小的文件描述符”上打开文件? 我已经找到了如何做到这一点,但似乎Bash总是要求你指定的数字,例如。喜欢这个: exec 3 /path/to/a/file # Open file for reading on file descriptor 3. 相比之下,我想能够做一
在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读