【问题标题】:'env -i' -- doesn't remove all env vars from subshell'env -i' -- 不会从 subshel​​l 中删除所有环境变量
【发布时间】:2018-03-19 08:41:25
【问题描述】:

我认为env -i 在空白环境下运行命令,但以下代码(在 bash v4.4 函数中)有效——例如,COMMAND 仅使用来自 ENVFILE 的环境变量执行。

那么,为什么env -i 没有删除显式设置的环境变量 ENVFILE 和 COMMAND?

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

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

【问题讨论】:

    标签: bash shell environment-variables


    【解决方案1】:

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

    export local ENVFILE="$1" COMMAND="$2"
    
    /usr/bin/env -i /bin/bash -c '. ${ENVFILE}; ${COMMAND}'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 2020-02-13
      相关资源
      最近更新 更多