groovy 在jenkins中如何在sh()调用中替换“&”

uubf1zoe  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(152)

我想通过sh从jenkins-groovy-script中获取参数,在网页上调用curl:

sh("curl http://example.com/page.cgi?param1=a&param2=b&param3=c")

但是命令在'&'处被拆分,在jenkins的输出日志中有如下内容:

+ param3=c
+ curl http://example.com/page.cgi?param1=a
+ param2=b

当然,对Web服务器的调用只包含第一个参数。
我已经尝试过不同的逃跑方式,但没有成功。
如何进行包含所有参数的调用?

zvokhttg

zvokhttg1#

就像在命令行中一样,你必须引用它或者转义它。研究sh shell中的引用和转义。
请尝试:

sh("curl 'http://example.com/page.cgi?param1=a&param2=b&param3=c'")
sh('curl "http://example.com/page.cgi?param1=a&param2=b&param3=c"')
sh("curl http://example.com/page.cgi?param1=a\\&param2=b&param3=c")
sh("curl \"http://example.com/page.cgi?param1=a&param2=b&param3=c\"")

shell中的&意味着在后台运行一些东西,比如sleep 10 & wait

相关问题