0
我有一個變量中的URL,它是從另一個地方讀取的。該變量具有?
和&
字符。如果我在單引號或雙引號之間輸入整個URL,它可以正常工作。但是如果我輸入變量,curl會抱怨這個URL有非法字符。我如何繞過這個?cURL:如何輸入具有特殊字符的變量的URL
PS:我也試圖與%3F
和%26
更換?
和&
,但沒有奏效。
實施例:
$ echo "$location"
https://example.com/dothis?param1=something¶m2=somethingelse
$ curl "$location" -o /dev/null > /dev/null
curl: (3) Illegal characters found in URL
$ curl "https://example.com/dothis?param1=something¶m2=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
這裏不能重現這一點。可能是因爲URL中有不可見的字符。也許,在重新定義你的'location'變量後再試一次。 –
試試'echo「$ location」| LC_ALL = C cat -vet'來查看變量中是否有任何不可見的字符。請注意'-e'會使它在行尾添加一個「$」;除此之外的任何事情都是潛在的問題。 –
這是正確的@GordonDavisson。 'cat -A'在'$'之前顯示'^ M'。萬分感謝。 –