Jenkins執行shell指令碼,環境變數失效

2021-09-27 11:42:57 字數 3683 閱讀 3214

最近使用jenkins執行shell指令碼,發現配置好的環境變數無法載入,導致安裝的模組失效,通過查詢資料發現,這是由於jenkins執行指令碼是屬於非互動式和非登陸式shell,詳見

通過檢視環境變數:

env

echo $path

主機命令列執行指令碼:

lc_*****=zh_cn.utf-8

lc_address=zh_cn.utf-8

lc_monetary=zh_cn.utf-8

term=xterm

shell=/bin/bash

conda_shlvl=1

lc_numeric=zh_cn.utf-8

user=root

lc_telephone=zh_cn.utf-8

ls_colors=rs=0:di=01

sudo_user=gerrit

sudo_uid=1001

conda_exe=/root/anaconda2/bin/conda

username=root

_ce_conda=

path=/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

mail=/var/mail/root

lc_identification=zh_cn.utf-8

conda_prefix=/root/anaconda2

pwd=/var/lib/jenkins/workspace/datasystem_test

lang=zh_cn.utf-8

lc_measurement=zh_cn.utf-8

_ce_m=

home=/root

sudo_command=/bin/su

shlvl=2

language=zh_cn:en_us:en

logname=root

lessopen=| /usr/bin/lesspipe %s

conda_default_env=base

sudo_gid=1001

lc_time=zh_cn.utf-8

lessclose=/usr/bin/lesspipe %s %s

lc_name=zh_cn.utf-8

_=/usr/bin/env

/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

jenkins執行指令碼:

lc_*****=zh_cn.utf-8

lc_address=zh_cn.utf-8

xdg_session_id=c4

build_url=

lc_monetary=zh_cn.utf-8

hudson_server_cookie=799445fd3d2b12d4

shell=/bin/bash

build_tag=jenkins-datasystem_test-7

lc_numeric=zh_cn.utf-8

job_url=

workspace=/var/lib/jenkins/workspace/datasystem_test

run_changes_display_url=display/redirect?page=changes

user=root

lc_telephone=zh_cn.utf-8

jenkins_home=/var/lib/jenkins

path=/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

mail=/var/mail/root

run_display_url=display/redirect

lc_identification=zh_cn.utf-8

pwd=/var/lib/jenkins/workspace/datasystem_test

hudson_url=

lang=zh_cn.utf-8

job_name=datasystem_test

lc_measurement=zh_cn.utf-8

lucene=/usr/local/src/lucene-8.0.0

build_display_name=#7

jenkins_url=

build_id=7

job_base_name=datasystem_test

home=/root

shlvl=2

language=zh_cn:en_us:en

executor_number=0

jenkins_server_cookie=799445fd3d2b12d4

node_labels=master

logname=root

hudson_home=/var/lib/jenkins

node_name=master

gerrit_home=/home/gerrit/gerrit_site

job_display_url=display/redirect

build_number=7

xdg_runtime_dir=/run/user/0

hudson_cookie=849cd51f-20da-401b-9274-f0144f1c2f43

lc_time=zh_cn.utf-8

lc_name=zh_cn.utf-8

_=/usr/bin/env

/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

其中主機執行時:

path=/root/anaconda2/bin:/root/anaconda2/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
jenkins執行時:

path=/sbin:/home/gerrit/gerrit_site/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
對比兩個路徑發現,jenkins路徑中並沒有包含模組路徑。

於是開啟jenkins中manage jenkins ->configure system

在global properties中勾選environment variables ->add  ,填寫path,並將主機shell環境的path填入,即可正常執行。 

jenkins執行shell啟動tomcat失敗

環境 centos 6.5 jenkins版本 1.6 狀況 整合jenkins bitbucket,構建持續部署。構建完畢,jenkins會執行伺服器某個目錄下的shell,指令碼中功能是複製war包到tomcat目錄下,重啟tomcat。但是,tomcat只是啟動了一下,就關閉了,並沒有啟動to...

jenkins執行shell提示命令不存在

jenkins編譯專案,不繼承linux環境變數 bash profile bashrc etc profile,導致在執行shell指令碼,提示命令找不到!sz hgzx web bin sh xe home jenkins jenkins tomcat temp jenkins348128360...

Shell 入門教程(四) 如何執行shell指令碼

執行 shell 指令碼有兩種方式,一種是通過 bash 命令,一種是作為可執行程式執行。我們寫了下面這樣乙個 shell 指令碼,並將其儲存為hello.sh bin bash echo hello shell.如果我們用bash命令執行,那麼是這樣的 bash hello.sh。執行後會輸出 h...