You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline执行远程脚本报line 1: html: No such file or directory求助

排查解决思路

根因定位

从报错日志/home/jenkins/xxx/script.sh: line 1: html: No such file or directory可以直接判断:你调用Artifactory API的curl请求实际返回的不是纯文本版本号,而是HTML格式的内容(比如404页面、登录验证页、重定向页),后续代码把返回的HTML内容直接传入shell命令执行时,<html>标签被shell解析为输入重定向符,系统尝试读取名为html的文件所以报错。
你说手动执行curl正常,大概率是手动执行的环境和Jenkins agent运行环境存在差异。

具体排查步骤

  • 第一步:打印API返回的原始内容确认异常
    修改jenkinsUtils.groovy里的latestVersionOf方法,增加调试日志打印原始返回值,同时给curl加重定向跟踪、状态码输出参数:
    String latestVersionOf(group, artifact, version, repo) {
        script {
          def curlCmd = "curl -sL -w '\nHTTP_STATUS:%{http_code}' -u 'restapi:restapi' '${ARTIFACTORY_URL}/api/search/latestVersion?g=${group}&a=${artifact}&v=${version}&repos=${repo}'"
          def rawResp = sh (
            returnStdout: true,
            script: curlCmd
          ).trim()
          println "Artifactory API原始返回值:\n${rawResp}"
          // 拆分状态码和返回内容
          def respLines = rawResp.split('\n')
          def statusLine = respLines.last()
          if (statusLine != 'HTTP_STATUS:200') {
            error "Artifactory API请求失败,状态码:${statusLine},返回内容:${rawResp}"
          }
          return respLines[0..-2].join('\n').trim()
        }
    }
    
    运行Pipeline查看打印的返回内容,确认是不是返回了HTML页面。
  • 第二步:核对Jenkins运行环境与手动执行环境的差异
    1. 确认Jenkins agent节点的网络是否可以正常访问Artifactory域名,有没有代理配置、防火墙限制、IP白名单限制
    2. 确认restapi账号的密码最近是否有修改,权限是否被回收,是否有权限访问指定的MAVEN_CANDIDATES_REPO仓库
    3. 核对4个月内Artifactory是否有版本升级、API配置变更:部分版本的Artifactory搜索API要求指定请求头Accept: text/plain才会返回纯文本版本号,否则默认返回HTML格式的搜索结果页,你可以在curl命令里加-H 'Accept: text/plain'参数验证
  • 第三步:修复返回值处理逻辑
    无论API返回是否正常,都建议对返回的版本号做特殊字符过滤,避免后续shell执行出现解析异常:
    cspVersion = utilsScript.latestVersionOf('com.xyz.ria.parent', 'xyz-ria-parent', "${params.CSP_VERSION}_*", MAVEN_CANDIDATES_REPO).trim().replaceAll(/[<>&'"]/, '')
    
    如果后续要把cspVersion传入shell命令,记得给变量加双引号,避免shell解析特殊字符:sh "echo \"${cspVersion}\""

内容的提问来源于stack exchange,提问作者Nirmalya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:02