我发现shell和jenkins显示的环境变量是不同的。当我通过echo看到$ PATH时,它显示如下;
# cat /etc/passwd | grep jenkins
jenkins:x:998:997:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/bash
# su jenkins
bash-4.2$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
然而,当我执行" echo $ PATH"在Jenkins by(Build - > Execute shell)上,控制台日志显示如下;
[workspace] $ /bin/sh -xe /tmp/hudson6923847933544830986.sh
+ echo /sbin:/usr/sbin:/bin:/usr/bin
/sbin:/usr/sbin:/bin:/usr/bin
Finished: SUCCESS
不仅$ PATH而且许多其他变量也不同,但$ PATH对执行命令很重要,我不明白为什么它们不一样。你有什么想法吗?
答案 0 :(得分:0)
user of shell
和user who is building the job
不一样。
在shell和jenkins中运行$ whoami
命令(Build - > Execute shell)。Build -> Execute shell
部分或jenkins -> Manage Jenkins -> configure System -> Global properties
部分设置PATH变量。检查Environment variables
然后Name: PATH
,value: $PATH:/usr/local/sbin
。