“ export MY_VAR = 123 && npx package…”和“ MY_VAR = 123 npx package…”之间有什么区别?

时间:2019-12-02 09:02:10

标签: node.js bash environment-variables

用例是导出环境变量,以仅在以下npx package …命令中使用它。

export MY_VAR=123 && npx package…MY_VAR=123 npx package…有什么区别?

我使用哪个选项有关系吗? 如果没有区别,我倾向于使用第二个选项,因为它较短。

1 个答案:

答案 0 :(得分:2)

两个命令都将使用环境变量MY_VAR = 123 运行npx

区别在于,对于'export MY_VAR = 123',该变量将保留在shell环境变量中,并将应用于以后的所有程序(直到重置或更改)。

使用MY_VAR=123 npx package…时,该变量是为npx命令的环境设置的,但不适用于以后的程序。

var=FOO echo "$var"
Output: "FOO"

(echo "X $var")
Output: "X " since var not set.

export var=BAR
echo "X $var"
Output: "X BAR"

(echo "X $var")
Output: "X BAR"

通常,如果您需要单个程序使用环境变量,请使用VAR = value VAR2 = value2 ...命令参数,因为它消除了从程序特定的设置“清理”环境的需要,并降低了风险。意外的环境变量将被传递。