我最近重写了bash执行命令到Jenkinspipe道。 旧的代码就像
... source environment.sh //Build //Test ...
现在我使用pipe道脚本来包装命令,就像这样
sh ''' ... source environment.sh //Build //Test ... '''
但是,我得到了一个错误,因为.../.jenkins/script.sh: line 9: source: environment.sh: file not found
。 当我尝试less environment.sh
,它显示正确。 所以我怀疑sh wrap
source command
什么问题。
在使用pipe道之前, source environment.sh
命令在shell执行中工作正常。 所以源是安装在Jenkins服务器上,看来pipe道脚本不知道什么是源命令。
我怎么能在sh包裹块中运行source命令?
用source environment.sh
替换source.sh
. ./environment.sh
请注意,第一个点后面有一个空格。
source
是一个bash
/ ksh
/ etc扩展,作为一个更“实质”的同义词提供.
。
在sh
,你需要使用.
以防底层的外壳是不支持命令source
(例如dash
)。
sh ''' ... . environment.sh //Build //Test ... '''