我正在使用nsenter -m -u -i -n -p -t $PID /bin/bash输入一个命名空间。但是,这个命名空间中的printenv并不具备我所需要的一切。我希望将这些变量发送进来,但我希望避免将bash命令前缀为KEY=VALUE KEY2=VALUE2 /bin/bash。
有更好的方法吗?
发布于 2014-04-16 20:49:05
我现在不能做更多的事情,但看起来你可以使用--rc-file或--profile,等开关。
man bash..。
如果使用sh名称调用bash,则它试图尽可能地模拟sh历史版本的启动行为,同时也符合POSIX标准。当作为交互式登录shell调用时,或者使用--登录选项调用非interac- tive shell时,它首先尝试按该顺序读取和执行com- mands from /etc/profile和~/.profile。--noprofile选项可用于抑制此行为.当作为名为sh的交互式shell调用时,bash会查找变量ENV,如果定义了它,就会展开它的值,并使用扩展的值作为文件的名称来读取和执行。由于作为sh调用的shell不尝试从任何其他启动文件读取和执行命令,因此--rcfile选项没有任何效果。名为sh的非交互式shell不会尝试读取任何其他启动文件。当作为sh调用时,bash在读取启动文件后进入posix模式。在posix模式下启动bash时,就像使用--posix命令行选项一样,它遵循POSIX启动文件标准。在这种模式下,交互式shell展开ENV变量,并从名为展开值的文件中读取和执行命令。没有读取其他启动文件。
https://unix.stackexchange.com/questions/125100
复制相似问题