Linux env命令

Linux env命令

可以使用env命令传递环境变量,而无需在外部环境(当前shell)上设置它们。

假设您想运行一个Node.js应用程序,并为其设置USER变量。

您可以运行:

env USER=flavio node app.js

USER环境变量将通过节点进程从Node.js应用程序访问。env接口。

您还可以运行命令清除所有已设置的环境变量,使用-i选项:

env -i node app.js

在这种情况下,您将看到一个错误,说env: node:没有这样的文件或目录,因为无法访问node命令,因为shell用于在公共路径中查找命令的PATH变量未设置。

因此,您需要将完整路径传递给节点程序:

env -i /usr/local/bin/node app.js

尝试使用一个简单的app.js文件,内容如下:

console.log(process.env.NAME)
console.log(process.env.PATH)

你会看到输出:

undefined
undefined

您可以传递一个env变量:

env -i NAME=flavio node app.js

输出是:

flavio
undefined

删除-i选项将使路径在程序内再次可用:

Linux env命令

如果运行时没有任何选项,还可以使用env命令打印出所有环境变量:

env

它将返回环境变量设置的列表,例如:

HOME=/Users/flavio
LOGNAME=flavio
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
PWD=/Users/flavio
SHELL=/usr/local/bin/fish

你也可以在你运行的程序中使用-u选项使一个变量不可访问,例如,这段代码从命令环境中删除了HOME变量:

env -u HOME node app.js
(0)
上一篇 2020年10月31日 下午11:52
下一篇 2020年11月2日 下午9:45

相关推荐

发表回复

登录后才能评论