2
为什么不能将变量用作设置环境变量的命令的前缀?
通常,可以通过为命令设置前缀来设置环境变量,如下所示: hello=hi bash -c 'echo $hello' 我也知道我们可以使用变量来替代命令调用的任何部分,如下所示: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" 我很惊讶地发现您不能使用变量来为设置环境变量的命令添加前缀。测试用例: $ prefix=hello=hi $ echo $prefix # prints hello=hi $ $prefix bash -c 'echo $hello' hello=hi: command not found 为什么不能使用变量设置环境变量?前缀部分是特殊的部分吗?我可以通过在前面使用eval使其工作,但是我仍然不明白为什么。我正在使用bash 4.4。