gnu 联机帮助页,关于 "env" 命令的两个版本的文档

gnu manpage, two versions of documentation on "env" command

我是 shell 编程新手,目前正在研究 ubuntu 上的 env 命令。

我正在检查 GNU manpage 上的 env 命令,env

上似乎有两个版本的文档

所以我只是想知道,为什么同一个命令有两个版本?他们两个有什么区别?

我刚开始学习shell,这让我很困惑。

一个手册页与您正在使用的 env shell 命令相关,另一个与 env 的编程库相关,例如 env.h.

存在同一命令的不同版本并不罕见,例如在不同的操作系统上。在这种情况下,您找到了 POSIX env 和 coreutils env 的手册页。

POSIX 是关于 Unix 风格操作系统应该如何运行的联合规范。它包含许多接口,例如带有线程和时钟的实时库,带有标准库的C 编程语言等等。在这种情况下,它指定了 env 命令的行为基准。

coreutils 是一个 GNU 软件包,包含一组被视为 "core" 操作系统的程序。在 GNU/Linux 等 GNU 系统上,这很可能是实现 env 命令的原因。它有自己的文档,因此它不依赖于像 POSIX 那样的单独文档,并且记录任何扩展和与标准的差异。

在这种情况下,GNU coreutils env 有几个 POSIX coreutils 中没有的开关,例如取消设置特定变量和输出以 NUL 分隔的列表。