在bash脚本中使用curl并curl:(3)在URL中find非法字符

所以我有一个非常简单的bash脚本,它正在卷起一个头部的auth服务器。 标题url被写入一个var,然后在下一个curl调用中使用。 当在第一次curl调用中使用var集合时,我得到“curl:(3)在URL中find非法字符”。 我能够回显变种和所有看起来不错,我甚至能够重置变种(在我的例子下面),它的工作原理。

Bash脚本

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 

URL var看起来像这样(没有非法字符)

 https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534 

当我在terminal做这个工作时,

$ 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

现在我复制并粘贴string并将其重新分配给URL,如下所示(再次在terminal中):

 >$ 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 printf %s "$URL" | xxd

这里是输出(改变了你的想法)

 0000000: 6874 7470 733a 2f2f 6461 6c30 352e 6f62 https://server.ob 0000010: 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. 

Solutions Collecting From Web of "在bash脚本中使用curl并curl:(3)在URL中find非法字符"