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]。 这是一个自由软件:您可以自由地修改和重新分发它。 在法律允许的范围内,不提供任何保证。