Max*_*kyi 3 bash shell node.js
我刚刚遇到了这个代码片段:
$ DEVELOPMENT=1 node dev-mode.js
Run Code Online (Sandbox Code Playgroud)
这一行运行 node.js 程序并设置环境变量DEVELOPMENT。我不明白设置 env 变量的机制是什么?这是有效的语法:
$ [var1=value1 var2=value2] [process_name process_params] ?
Run Code Online (Sandbox Code Playgroud)
有两种方法可以从您当前的 shell 一个正在运行的程序中设置传递变量,
使用export内置语法作为
$ export MYVALUE=5
$ echo "MYVALUE is $MYVALUE"
MYVALUE is 5
Run Code Online (Sandbox Code Playgroud)
此语法允许变量在您正在调用的所有后续子 shell 中的当前 shell 中生效(用于命令替换或进程替换等),并且即使在子 shell 终止后,该变量也保持活动状态。
(或)如问题中所问,如果您直接将其发送到命令
$ MYVALUE=5 bash -c 'echo "MYVALUE is $MYVALUE"'
MYVALUE is 5
Run Code Online (Sandbox Code Playgroud)
该值仅传递给子外壳(以 开头的子外壳bash -c)并且一旦退出就对父外壳没有影响。您现在可以MYVALUE从上面的语法中观察到,它将是空的。
$ echo $MYVALUE
$
Run Code Online (Sandbox Code Playgroud)
希望这能回答你的问题。