【问题标题】:curl: (3) [globbing] unmatched brace at pos 2curl: (3) [globbing] 在 pos 2 处不匹配的大括号
【发布时间】:2020-07-06 07:01:26
【问题描述】:

我不断收到此错误:curl: (3) [globbing] unmatched brace at pos 2 我什至不明白“pos 2”在哪里 虽然奇怪的是,当我从 bash 执行此操作时,我没有遇到同样的问题。我在 Jenkins 管道中运行该代码。这就是为什么你会看到 sh '''' wrapper

sh '''
    curl  -u ${GIT_USERNAME}:${GIT_PASSWORD} -H "Content-Type: application/json" -X POST https://tools.company.my.com/bitbucket/rest/build-status/1.0/commits/$GIT_COMMIT --data-binary @- <<BODY \
            {
              "state": "SUCCESSFUL",
              "key": "$JOB_BASE_NAME",
              "name": "$BUILD_TAG",
              "url": "$BUILD_URL",
              "description": "change"
            }
            BODY
               '''   

【问题讨论】:

  • 为什么第一行末尾有反斜杠?否则因为&lt;&lt;BODY,BODY必须直接在行首
  • shell 的三个撇号有什么意义?这些应该是单撇号。

标签: json bash curl


【解决方案1】:

假设 ${GIT_PASSWORD} 中没有单引号:

sh -c "curl -u '${GIT_USERNAME}:${GIT_PASSWORD}'\
            -H 'Content-Type: application/json'\
            -X POST 'https://tools.company.my.com/bitbucket/rest/build-status/1.0/commits/$GIT_COMMIT'\
            --data-binary @-" << BODY
            {
              "state": "SUCCESSFUL",
              "key": "$JOB_BASE_NAME",
              "name": "$BUILD_TAG",
              "url": "$BUILD_URL",
              "description": "change"
            }
BODY

【讨论】:

  • 因为 Jenkins 我需要它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 2021-05-04
  • 2011-11-25
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多