gpt4 book ai didi

linux - 非交互式、非登录 shell 的 ash 中有哪些初始化文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:37 31 4
gpt4 key购买 nike

我有一个 Docker 容器,它使用 alpine:3.7作为基本图像,因此使用 /bin/ash作为它的外壳。

我将容器置于后台运行模式。我的意图是我可以继续使用 docker exec $CONTAINER_ID <command>在它。因此,该命令将在非交互、非登录 shell 模式下执行。

但是,有时我的 <command>处于非标准路径中,因此我很乐意export PATH所以我不输入完全限定的路径。或者,有时某些软件安装需要我在我们的 shell 初始化文件中放置一些命令(例如 eval "$(pyenv init -)" )。

问题是:在/bin/ash下shell,用于非交互式、非登录 shell 命令执行,我可以在哪里导出这个新的 PATH ,或者我的 eval "$(pyenv init -)" ,这样我就可以做我的 docker exec是否正确加载/采购了所有内容?

如果 Ash 做不到,我也会考虑 Bash。

TIA

最佳答案

由环境变量 ENV 命名的文件是在启动符合 POSIX 的 shell(或 POSIX 模式下的 bash)时获取的。如果您想在非 POSIX 模式下也支持 bash,您还需要设置 BASH_ENV

这意味着您可以告诉 Docker 更新环境变量 ENV 以指向一个文件,当由 shell 解释器获取时,该文件将运行 eval "$(pyenv init -) ".

关于linux - 非交互式、非登录 shell 的 ash 中有哪些初始化文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573182/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com