【发布时间】:2021-03-06 09:18:21
【问题描述】:
搜索 stackoverflow 和其他谷歌搜索并不能满足我关于在 curl 中分配 bash 变量以访问 jenkins API 的整个目的的问题。
这是我访问 Jenkins API 的简单脚本,这里已经出错了:
JENKINS_USER=myUser
TOKEN=myToken
DOCK=myDock
HOST=localhost
PORT=8080
BASE_URL=https://$JENKINS_USER:$TOKEN@$HOST:$PORT/view/all/job/myProject/api/
curl -g -k ${BASE_URL}
bash 的输出:
user@c012311:/mnt/c/Users/User/Desktop$ ./myScript.sh
./myScript.sh: line 6: $'\r': command not found
./myScript.sh: line 11: $'\r': command not found
curl: (3) URL using bad/illegal format or missing URL
我尝试像这样访问我的变量:
- \"$TOKEN\"
- ${代币}
- '$TOKEN'
但结果是一样的。
结果阻止我进一步推进我的脚本来过滤我的 jenkins 构建:
BUILD_NR=$BASE_URL/xml&xpath=//artifact/relativePath[contains(text(),$DOCK)])
此外,在其他变量中使用这些分配的变量:
ARTIFACT=$BUILD_NR/[...]
如何使用 bash 和 curl 正确分配变量?
【问题讨论】:
-
Dbl-引用所有变量的使用(99.9% 的时间)可能会有所帮助,所以尝试 curl -g -k "${BASE_URL}"` ... ``$\r` 听起来像 MS-Windows 行尾导致问题。使用
dos2unix myScript清理它们,然后重新运行。祝你好运。
标签: bash variables jenkins curl