在 Bash 中使用变量赋值的动态列表调用命令

Ren*_*mas 0 unix bash shell

像这样定义几个变量:

VARS="VAR1=1 VAR2=2"
Run Code Online (Sandbox Code Playgroud)

然后我想将这些变量提供给后面的命令。我可以这样做:

VAR1=1 VAR2=2 mycommand
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我希望动态设置这些局部作用域变量,例如:

$ $VARS mycommand
VAR1=1: command not found
Run Code Online (Sandbox Code Playgroud)

这似乎$VARS作为命令执行,这不是预期的。

ogu*_*ail 6

只需使用env.

envvars=(VAR1=1 VAR2=2)
env "${envvars[@]}" mycommand
Run Code Online (Sandbox Code Playgroud)