可以使用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选项将使路径在程序内再次可用:
如果运行时没有任何选项,还可以使用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
以上,就是俺整理的关于Linux env命令的用法,想要阅读更多的Linux命令,可以查看:
Linux教程 。
原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/5093.html