我认为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}"
答案 0 :(得分:2)
因为它们在当前 shell中被替换,而不是被调用的。
export local ENVFILE="$1" COMMAND="$2"
/usr/bin/env -i /bin/bash -c '. ${ENVFILE}; ${COMMAND}'