cURL:如何从具有特殊字符的变量输入URL

时间:2017-10-13 05:45:44

标签: bash curl

我在变量中有URL,从另一个地方读取。此变量具有?&个字符。如果我输入单引号或双引号之间的整个URL,它可以正常工作。但是如果我输入变量,curl会抱怨URL有非法字符。我该如何规避这个?

PS:我还尝试将?&替换为%3F%26,但它不起作用。

示例:

$ echo "$location"
https://example.com/dothis?param1=something&param2=somethingelse
$ curl "$location" -o /dev/null > /dev/null
curl: (3) Illegal characters found in URL
$ curl "https://example.com/dothis?param1=something&param2=somethingelse" -o /dev/null > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  126k    0  126k    0     0  13974      0 --:--:--  0:00:09 --:--:-- 32272

1 个答案:

答案 0 :(得分:1)

可能有一些看不见的字符。所以试试

printf '%s' "$location" | hexdump -C