bash - Bash:是否可以通过评估命令为单个子进程设置环境变量?
问题描述
这工作得很好:
>$ ENV=var printenv
ENV=var
这也有效,但它为整个 shell 设置了环境变量:
>$ export $(echo ENV=var)
>$ printenv
ENV=var
我想做这样的事情,但它失败了:
>$ $(echo ENV=var) printenv
bash: ENV=var: command not found
是否有另一种方法通过评估命令将环境变量传递给单个子进程?
解决方案
使用env
.
env "$(echo ENV=var)" printenv
或使用eval
但知道如何安全使用它。
eval "$(echo ENV=var)" printenv
无论哪种方式,在这两个命令中,您都必须确保输出经过消毒。