【发布时间】:2015-06-06 02:09:50
【问题描述】:
我将字符串中带有空格的变量设置为新的 bash:
VAR='my variable with spaces' /bin/bash
现在,如果我想在相同的环境下开始一个新的 bash,我会这样做:
ENV=$(cat /proc/self/environ | xargs -0 | grep =)
env -i - $ENV /bin/bash
但问题是,在/proc/self/environ 中,这个变量没有引号。所以最后一个命令抛出一个:env: variable: No such file or directory
如何解决这个限制?
PS:这是以下问题的简化版本:https://github.com/jpetazzo/nsenter/issues/62
【问题讨论】:
-
您确定需要这样做吗?从进程启动的进程继承调用进程的环境。
-
查看链接 github 问题以了解为什么会提出这个问题。最终目标是在 Docker 容器中启动一个 shell,该容器具有与容器中的 PID 1 相同的环境变量。
标签: linux bash environment-variables nsenter