coreutils 手册说关于env
命令
env [option]... [name=value]... [command [args]...]
如果在环境规范之后没有指定命令名称,则打印结果环境。这就像指定 printenv 程序一样。
是印刷环境所env
特有的env
,从某种意义上说, 的值_
取决于env
?例如,
$ env | grep '^_'
_=/usr/bin/env
是否env
打印出当前 shell 的几乎所有导出环境,除了环境变量的值_
被修改为特定的env
?
那么是env
不是打印出当前shell中的环境,而是打印出内部接收到的环境env
?
谢谢。
答案1
env 在大多数 shell 中是一个单独的程序,因此它会打印从 shell 接收到的环境。
Bourne Shell 使用基于 shell 变量的环境管理系统。
启动时,它将环境导入到 shell 变量列表中。
创建或修改 shell 变量不会修改 shell 为新程序设置的环境。
调用
set
打印内部 shell 变量就像set
内置在外壳中一样调用
env
打印出口环境env
与外部命令一样
shell 变量_
是由 引入的ksh88
。它保存着最后的命令。