在詹金斯管道作业中将变量传递给bash脚本

新手上路,请多包涵

我有一个 Jenkins 管道作业,在其中我使用名为 setup.sh 的 bash 脚本配置我的环境,如下所示:

 #!/bin/bash
export ARCH=$1
echo "architecture = " ${ARCH}

在 Jenkins 管道脚本中,我调用 setup.sh 脚本:

 def lib_arch='linux-ubuntu-14.04-x86_64-gcc4.8.4'
sh ". /opt/setup.sh ${lib_arch}"

不幸的是,似乎 没有 变量被传递给 setup.sh 脚本,并且 echo \({ARCH} 返回一个空字符串!我尝试改为: sh "source /opt/setup.sh \){lib_arch}” 并且这也失败了,并显示“找不到源”消息。我还尝试将脚本的第一行更改为

#!/bin/sh

但这无济于事。那么如何在 Jenkins 管道脚本中将参数传递给我的 bash 脚本呢?谢谢你的帮助。

更新:Bert Jan Schrijve 在此线程中建议了一种解决方法(见下文):

 sh "bash -c \" source /opt/setup.sh ${lib_arch}\""

原文由 NabilG 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 450
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题