【问题标题】:What is the difference between "export MY_VAR=123 && npx package …" and "MY_VAR=123 npx package …"“export MY_VAR=123 && npx package ...”和“MY_VAR=123 npx package ...”有什么区别?
【发布时间】:2020-03-26 20:43:52
【问题描述】:

用例是导出一个环境变量,只是为了在下面的npx package … 命令中使用它。

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

我使用哪个选项重要吗? 如果没有区别,我会倾向于使用第二个选项,因为它更短。

【问题讨论】:

  • 第一个,MY_VAR会在命令后设置,并在session中持久化。第二个1,仅在命令中可用。

标签: node.js bash environment-variables


【解决方案1】:

这两个命令都将使用环境变量 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 ... 命令参数,因为它消除了从程序特定设置中“清理”环境的需要,并降低了风险意外的环境变量将被传递。

【讨论】:

    猜你喜欢
    • 2011-02-25
    • 2019-12-16
    • 2022-09-30
    • 1970-01-01
    • 2013-05-04
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多