gpt4 book ai didi

BASH_ENV,或者,在非交互式、非登录 shell 中获取文件

转载 作者:行者123 更新时间:2023-11-29 09:32:17 25 4
gpt4 key购买 nike

我必须使用 Hudson 部署一些东西,所以我为 maven 创建了一个 pom 文件,我让它运行的阶段只是一些 bash。

问题是,我在 hudson 用户 bashrc 和/或 bash_profile 中设置了东西运行所必需的东西,但这些文件似乎不是通过 hudson/maven 运行时的来源。我真的更愿意让它以这种方式运行,而不是使用硬编码的东西和绝对文件路径。

我在网上读到,BASH_ENV 中引用的任何内容都来自非交互式、非登录 shell,我猜这就是 bash 正在由 maven/hudson 运行的原因。

但是,BASH_ENV 是空的。而且,我无法在 bashrc 或 bash_profile 中设置它,因为正如我所说,它们没有得到来源,甚至/etc/profile 似乎也没有做任何事情。

有没有一种方法可以“永久”设置 BASH_ENV,以便(希望)当 maven 通过 hudson 和我的各种路径运行时,它会被获取,就像我 sshing 进入机器时一样?

最佳答案

您有几个选择。最干净的方法可能只是从您的 hudson bash 脚本中显式地 source 您所依赖的文件。这是 self 记录和清晰的。否则,您可以在启动 hudson 守护程序的脚本中设置 BASH_ENV,它将传播到子进程。查看我的 blog post on why environment variables are considered harmful对于我反对使用它们的情况。

关于BASH_ENV,或者,在非交互式、非登录 shell 中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063618/

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