我有一个shell脚本,对于Jenkins的许多项目来说很常见,将它放入资源文件夹并按如下所示加载它是正确的:
def script = libraryResource 'build/package_indexes/build_push.sh'
虽然这有效:
sh script
但是一旦我开始使build_push.sh
脚本接受参数,它就不起作用,因为script
不是文件......
第二个问题是将script
变量输出到临时文件(例如
writeFile script '/tmp/tmp.sh'
sh "/tmp/tmp.sh 'cmd_arg'"
答案 0 :(得分:1)
bash -c
会做到这一点。请记住,第一个参数是$ 0而不是$ 1
例如:
我的剧本 -
echo hello $0!
詹金斯文件中的
def script = libraryResource 'hello.sh'
sh "bash -c '$script' world"
结果是你好世界!