代码之家  ›  专栏  ›  技术社区  ›  Shih-Min Lee

将环境变量传递给多个命令

  •  6
  • Shih-Min Lee  · 技术社区  · 7 年前

    Hello=123 npm run a && npm run b && npm run c
    

    我在期待 Hello=123 要在内部传递的环境变量 a, b and c 过程但事实证明 a 是否正确设置了环境变量。

    有没有其他方法可以一次传递所有参数?

    1 回复  |  直到 7 年前
        1
  •  8
  •   dgc    7 年前

    尝试:

    Hello=123 sh -c 'npm run a && npm run b && npm run c'
    

    env 在整条生产线之前。这使得一个线性方程组在Bourne/POSIX和csh导出的壳中都能工作:

    env Hello=123 sh -c 'npm run a && npm run b && npm run c'
    

    你的观察结果是 var=val foo && bar $var 仅在以下环境中 foo bar . 这是正确的。解决方案是为依次运行的命令设置环境 : sh -c .

    当然,另一种解决方案很简单:

    Hello=123; export Hello   # or export Hello=123 if using bash
    npm run a && npm run b && npm run c