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

时间:2011-05-19 19:02:12

标签: bash maven hudson

我必须使用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通过哈德森和我的各种路径运行时它会被采购,这样当我进入机器时它们就像它们一样? / p>

1 个答案:

答案 0 :(得分:1)

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