当我这样做时
Hello=123 npm run a && npm run b && npm run c
我希望在Hello=123
进程中传递a, b and c
环境变量。但事实证明只有a
正确设置了环境变量。
有没有其他方法可以一次传递参数?
答案 0 :(得分:3)
尝试:
Hello=123 sh -c 'npm run a && npm run b && npm run c'
更好:在整行之前使用env
。这使得单线程在Bourne / POSIX和csh派生的shell中都起作用:
env Hello=123 sh -c 'npm run a && npm run b && npm run c'
您的观察是var=val foo && bar
仅在$var
而非foo
的环境中设置bar
。那是对的。解决方案是为命令设置环境,该命令又运行foo
和bar
:sh -c
。
另一种解决方案当然是:
Hello=123; export Hello # or export Hello=123 if using bash
npm run a && npm run b && npm run c