命令行手册

Man » env 手册在线 - 详细的 env 手册页在线文档

🌍
env - 在修改后的环境中运行程序

概要

env [选项]... [-] [名称=值]... [命令 [参数]...]

描述

将每个名称设置为值,并在环境中运行命令。

长选项的强制参数对于短选项也是强制性的。

-a, --argv0=参数
将参数作为命令的第零个参数传递

-i, --ignore-environment
从空环境开始

-0, --null
以 NUL 结尾,而不是换行符

-u, --unset=名称
从环境中删除变量

-C, --chdir=目录
将工作目录更改为目录

-S, --split-string=字符串
处理并拆分字符串,将其拆分为单独的参数;用于在 shebang 行中传递多个参数

--block-signal[=信号]
阻止将信号发送到命令

--default-signal[=信号]
将信号的处理程序重置为默认值

--ignore-signal[=信号]
将信号的处理程序设置为不执行任何操作

--list-signal-handling
将非默认信号处理程序列表输出到标准错误

-v, --debug
为每个处理步骤打印详细信息

--help
显示此帮助信息并退出

--version
输出版本信息并退出

仅 - 表示 -i。如果没有指定命令,则打印结果环境。

信号可以是信号名称,如“PIPE”,也可以是信号编号,如“13”。如果没有指定信号,则将包含所有已知的信号。多个信号可以用逗号分隔。一个空信号参数不起作用。

退出状态:

125 如果 env 命令本身失败

126 如果找到命令但无法调用

127 如果找不到命令

- 否则,命令的退出状态

脚本选项处理

-S 选项允许在脚本中指定多个参数。运行名为 1.pl 的脚本,其中包含以下第一行:

#!/usr/bin/env -S perl -w -T
...

将执行 perl -w -T 1.pl

如果没有“-S”参数,则脚本可能会失败,并显示以下内容:

/usr/bin/env: 'perl -w -T': 没有这样的文件或目录

有关更多详细信息,请参阅完整的文档。

注意事项

POSIX 的 exec(3p) 页面指出: “许多现有的应用程序错误地假定它们从某些信号设置为默认操作和/或未阻止状态开始......因此,最好不要在 exec 之间阻止或忽略信号,除非有明确的理由这样做,尤其不要在任意(不紧密协作)程序的 exec 之间阻止信号。”

作者

由 Richard Mlynarik、David MacKenzie 和 Assaf Gordon 编写。

报告错误

GNU coreutils 在线帮助:[https://www.gnu.org/software/coreutils/] 将任何翻译错误报告给 [https://translationproject.org/team/]

参见

sigaction(2)、sigprocmask(2)、signal(7)

完整文档 [https://www.gnu.org/software/coreutils/env] 或者,也可以在本地通过以下方式获取:info '(coreutils) env invocation'

由 Debian 编译 (9.7-3) 版权所有 © 2025 自由软件基金会。 许可证 GPLv3+:GNU GPL 第 3 版或更高版本 [https://gnu.org/licenses/gpl.html]。 这是一个自由软件:您可以自由地修改和重新分发它。 在法律允许的范围内,不提供任何保证。