【发布时间】:2014-03-14 05:35:06
【问题描述】:
我在尝试通过 bash Chef 资源加载我的 .bashrc 文件时遇到了一些问题。我的.bashrc 位于/sh/.bashrc 这是我的资源代码:
bash "Source .bashrc" do
cwd "/home/ameya"
user "ameya"
code "source /sh/.bashrc"
action :run
end
我的.bashrc 只有以下一点:
export ME=ameya
所以当我在终端输入echo $ME 时,我希望看到它打印出ameya,但什么都没有打印出来。我的设置方式有什么问题?提前致谢
【问题讨论】:
-
Chef 启动的 shell 获取您的文件与您自己的交互式 shell 在启动时获取文件有什么关系?环境变量是进程本地的——一旦发生
source命令的shell 退出,该命令就不再有任何影响(除了任何启动和遗留的子进程)。 -
我想基本上为用户设置 ENV 变量,我看到的许多示例表明,您可以通过
bash资源中的environment属性或通过采购来设置环境变量因为将值传递给environment属性很麻烦 -
bash资源中的environment属性不会长期更改环境变量,也不会以适用于以后的交互式 shell 的方式更改环境变量——它只会为单个调用设置它们你是在告诉厨师跑。
标签: bash chef-infra chef-recipe