我有一个用例,可以通过url请求(而不是pip下载)下载最新pip包的tar文件。因此,我尝试通过查看原始html来获取最新版本的grep。因此,对于https://pypi.org/project/astroid/#files的原始代码 我
awk '/release--current">/,/<div class="release"/' html | awk '/"release__version">/{flag=1;next}/<\/p>/{flag=0}flag'|awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }',
这只是在不同标记之间捕获文本,直到我终于得到想要的东西为止。这在外壳上可以正常工作,但是当我将命令放入jenkins管道中时,它不会返回任何内容。我的猜测是它是由于逃避而来的:
steps {
cleanWs()
script {
if ( params.PKG_VRS ) {
httpRequest outputFile: 'myfile', responseHandle: 'NONE', url: 'https://pypi.io/packages/source/{ first letter }/{ package name }/{ package name }-{ version }.tar.gz'
} else {
httpRequest outputFile: 'HTMLFILE', responseHandle: 'NONE', url: 'https://pypi.org/project/astroid/#files'
LATEST_VRS = sh (
script: """awk '/release--current">/,/<div class="release"/' html | awk '/"release__version">/{flag=1;next}/<\/p>/{flag=0}flag'|awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }'""",
returnStdout: true
).trim()
echo "${LATEST_VRS}"
}
}
}
如果有人可以帮助我找出如何在Jenkins sh命令中正确逃避awk的方法,或者有更好/更轻松的方法来执行我想要的操作(即获取最新版本的a),我将不胜感激。 PyPi包。据我所知,没有URL,即使我仍然想知道在詹金斯中使用awk的细微差别。