在bash脚本中使用curl并获取curl:(3)在URL中发现非法字符
因此,我有一个非常简单的bash脚本,该脚本正在卷曲到头的身份验证服务器。标头网址被写入var,然后在下一个curl调用中使用。在第一个curl调用中使用var集时,出现“
curl:(3)在URL中发现非法字符”。我能够回显var,并且看起来一切都很好,甚至可以重置var(在下面的示例中),并且可以正常工作。
URL=$(curl -i -X GET -H "X-Auth-User: MyUserna,e" -H "X-Auth-Key: MyAPIKey" "https://urlToAuthServer.tld/auth/v1.0/" | grep "X-Storage-Url:" | awk '{print $2}')curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt
curl: (3) Illegal characters found in URL
https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534
$ URL = $(curl -i -X GET -H“ X-Auth-User:MyUserna,e” -H“ X-Auth-
Key:MyAPIKey”“
https://urlToAuthServer.tld/auth/v1.0/
“ | grep” X-Storage-Url:“ | awk’{print $ 2}’)
$ echo $ URL
https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534
现在,我复制并粘贴字符串,然后将其重新分配到URL(同样在终端中):
>$ URL="https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534">$ curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt
有用。
那么,为什么在第一个示例中出现“ curl:(3)URL中发现非法字符”错误?
我跑了这个: printf %s "$URL" | xxd
这是输出(地址变了,您就知道了)
0000000: 6874 7470 733a 2f2f 6461 6c30 352e 6f62 https://server.ob0000010: 6a65 6374 7374 6f72 6167 652e 736f 6674 jectstorage.lite
0000020: 6c61 7965 722e 6e65 742f 7631 2f41 5554 sabers.com/v1/AUT
0000030: 485f 6665 3235 3339 3434 2d38 6433 322d H_aE2563981-7d32-
0000040: 3432 3138 2d61 6566 632d 6665 6638 3465 4201-bdoi-fef94a
0000050: 6166 3331 6232 0d ag11c8.
回答:
$ URL \r
的结尾(0d
)包含(CR )。用删除
URL=${URL%$'\r'}
搭配使用之前curl
。
以上是 在bash脚本中使用curl并获取curl:(3)在URL中发现非法字符 的全部内容, 来源链接: utcz.com/qa/414806.html