当我做
Hello=123 npm run a && npm run b && npm run c
Run Code Online (Sandbox Code Playgroud)
我期望Hello=123环境变量在a, b and c进程内传递。但是事实证明只有a正确设置了环境变量。
我还有其他方法可以一次传递所有参数吗?
尝试:
Hello=123 sh -c 'npm run a && npm run b && npm run c'
Run Code Online (Sandbox Code Playgroud)
更好:env在整行之前使用。这样一来,就可以在Bourne / POSIX和csh派生的shell中使用单行代码:
env Hello=123 sh -c 'npm run a && npm run b && npm run c'
Run Code Online (Sandbox Code Playgroud)
你的看法是,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
Run Code Online (Sandbox Code Playgroud)