什么是export
?
有什么区别:
export name=value
Run Code Online (Sandbox Code Playgroud)
和
name=value
Run Code Online (Sandbox Code Playgroud) 我的 Linux 机器上有一个 bash 脚本,其中包含以下两行:
[ -r /etc/java/java.conf ] && . /etc/java/java.conf
export JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
导出JAVA_HOME有什么作用?通常我认为 export VARIABLE_NAME=something 将变量设置为某个值。
运行export JAVA_HOME而不设置它会做什么?
我尝试在命令行上运行它,但没有任何反应。
正如您在下面看到的,我设置了一个环境变量FOO
,但是当我console.log
在下一行执行时,它就是undefined
.如果我将它设置在我执行的同一行console.log
,它就会出现.为什么这样的行为呢?
$ FOO="123"
$ echo $FOO
123
$ node -e "console.log(process.env.FOO)"
undefined
$ FOO="123" node -e "console.log(process.env.FOO)"
123
Run Code Online (Sandbox Code Playgroud)
节点版本:6.6.0
如果我们在 .bashrc 中设置自定义环境变量,如下所示:
TMP_STRING='tmp string'
Run Code Online (Sandbox Code Playgroud)
看来这个变量不能直接从 bash 脚本访问。
#!/bin/bash
echo $TMP_STRING
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但它也不起作用:
#!/bin/bash
source ~/.bashrc
echo $TMP_STRING
Run Code Online (Sandbox Code Playgroud)
您能建议在这种情况下正确的方法是什么吗?谢谢你!