我目前正在设置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是如何执行的。
需要帮助和指导