Quindi ho uno script bash molto semplice che si sta curlando su un server di autenticazione per un'intestazione. L'url di intestazione viene scritto in una var e quindi utilizzato nella successiva chiamata di arricciatura. Quando si utilizza il var set nella prima chiamata a ricciolo ricevo "arricciatura: (3) Caratteri non validi trovati nell'URL". Sono in grado di echo la var e tutto sembra a posto, sono anche in grado di resettare la var (nel mio esempio qui sotto) e funziona.
Lo script di 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
Quando eseguo l'esempio sopra, ottengo:
curl: (3) Illegal characters found in URL
L'URL var è simile a questo (nessun carattere illegale)
https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534
Quando lo faccio nel terminale funziona:
$ 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
Adesso copio e incollo la stringa e la ricompongo in URL come tale (di nuovo tutto nel terminale):
>$ 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
Funziona.
Quindi, perché nel primo esempio viene visualizzato l'errore "arricciatura: (3) caratteri non consentiti trovati nell'URL"?
Aggiornare
Ho eseguito questo:
printf %s "$URL" | xxd
Ecco l'output (indirizzato cambiato si ottiene l'idea)
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.