'env -i' - 不会从子shell中删除所有env变量

时间:2018-03-19 08:41:26

标签: bash shell environment-variables

我认为env -i运行带有空白环境的命令,但是下面的代码(在bash v4.4函数中)可以正常工作 - 就像在COMMAD中,只使用ENVFILE的env变量执行。

那么,为什么明确设置的env vars ENVFILE和COMMAND没有被env -i删除?

export local ENVFILE="$1" COMMAND="$2"

/usr/bin/env -i /bin/bash -c ". ${ENVFILE}; ${COMMAND}"

1 个答案:

答案 0 :(得分:2)

因为它们在当前 shell中被替换,而不是被调用的。

export local ENVFILE="$1" COMMAND="$2"

/usr/bin/env -i /bin/bash -c '. ${ENVFILE}; ${COMMAND}'