[英]How to use source command within Jenkins pipeline script
我最近将 bash 执行命令重写为 Jenkins 管道。 旧代码就像
...
source environment.sh
//Build
//Test
...
现在我使用管道脚本来包装命令,就像这样
sh '''
...
source environment.sh
//Build
//Test
...
'''
但是,我收到一个错误,如.../.jenkins/script.sh: line 9: source: environment.sh: file not found
。 当我尝试less environment.sh
时,它会正确显示。 所以我怀疑sh wrap
中的source command
有问题。
在使用管道之前, source environment.sh
命令在 shell 执行中运行良好。 所以源是安装在Jenkins服务器上的,似乎管道脚本不知道源命令是什么。
我该怎么做才能在 sh 包装块中运行 source 命令?
将source environment.sh
替换为
. ./environment.sh
请注意第一个点后有一个空格。
source
是一个bash
/ ksh
/etc 扩展,作为.
.
在sh
,您需要使用.
如果底层 shell 是一个(例如dash
)不支持命令source
。
sh '''
...
. ./environment.sh
//Build
//Test
...
'''
如果有人想仅使用源代码执行脚本,解决方案是在 ->Manage Jenkins->Configure System 中将“Shell executable”更改为 bash
. ./script.sh
. ./script.sh
它工作正常,:但你也可以这样做:
sh '''#!/bin/bash
source /path/to/script.sh
'''
重要的! : 注意#!/bin/bash
是脚本的第一行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.