为什么我的`.bashrc`在切换到bash但不是从Jenkins启动的csh时运行?

时间:2017-02-20 17:45:35

标签: bash shell jenkins

我目前正在设置Jenkins来检查并从我的项目中运行编译,链接和执行脚本(比如x脚本)。该脚本使用一堆环境变量来执行。我们的默认shell是csh,上面的脚本也在c shell中。

到目前为止一切都很好。现在,我创建了一个Jenkins构建作业,并添加了#!/ bin / csh,以便另一个shell可以调用并执行该脚本。 Jenkins默认使用sh shell来运行命令。那么,我如何确保我的c shell中可用的所有环境变量在sh shell下都可见? 这对我来说是最简单的选择......

选项2 - 我可以创建一个sh启动脚本,这样当Jenkins启动时,它可以自动定义这些环境变量。所以,为了测试这个,我在我的主目录下创建了2个文件 - .profile和.bash_profile

当我通过键入sh从c shell切换到bourne shell时,没有任何启动脚本被执行。但是,这仅适用于sh shell。对于bash shell,.bashrc内容正在执行。

以下示例代码:

的.bash_profile

echo "hello shrc"

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
# User specific aliases and functions

的.profile

echo "hello shrc"
.bashrc

以下命令结果:

sharanb@clnx1 /u25/sharanb ->sh
sh-4.1$

注意上面没有回应

sharanb@clnx1 /u25/sharanb ->bash
hello bashrc
[sharanb@clnx1 ~]$

注意.bashrc是如何执行的。

需要帮助和指导

0 个答案:

没有答案