如何将一个命令的输出作为环境变量传递给另一个

时间:2018-12-04 22:01:18

标签: bash npm

我有一个bash脚本,运行时会产生如下输出:

VAR1=test
VAR2=test

我想将这些变量作为环境变量传递给npm脚本,在这种情况下,该脚本仅在当前目录中运行mocha,就像我在运行VAR1=test VAR2=test mocha一样。

谢谢。

2 个答案:

答案 0 :(得分:1)

对于bash脚本来说,输出这样的shell变量赋值并不是一个好的设计,但是您可以使用包装器脚本runwithvars解决它:

#!/bin/bash
set -a                 # Auto-export all new variables
eval "$(mybashscript)" # Perform whichever actions the script outputs
exec "$@"              # Execute the specified command

现在,您可以使用runwithvars mocha对这些变量运行mocha

请注意,如果脚本输出键值对而不是shell变量分配,例如VAR1=some value with spaces而非VAR1='some value with spaces',则此答案不适用,可能会很脆弱或危险。

答案 1 :(得分:0)

使用export

export VAR1=test
export VAR2=test