特殊文件描述符

特殊文件描述符

在 shell 脚本中,除 0、1 和 2 之外的文件描述符是否有任何特殊之处?

集群联机帮助页有以下示例代码:

  (
    flock -n 9 || exit 1
         # ... commands executed under lock ...
  ) 9>/var/lock/mylockfile

为什么选择 9。为什么不选择 3?

答案1

9羊群(1)这只是一个例子(手册页的作者可能选择了 42 或许多其他数字)。一些 shell 脚本在一些奇怪的上下文中执行,其中文件描述符 3 可能已经被使用。

(并非每个脚本都用于交互式使用,有些脚本可能由服务器守护进程在内部启动 - 例如邮件或 Web 服务器 -,其他脚本可能由其他命令启动;有些脚本位于/usr/libexec通常的外部$PATH- 因为它们仅供内部使用)

相关内容