如何在bash curl语句中包含“&”字符
我试图在bash中使用curl来下载一个网页,但是URL中的&
符号并不是我想要的那样被解释为一个字符。 任何想法,我怎么可以说服bash的符号&
只是一个无聊的性格,没有什么特别的?
把整个URL放在双引号内应该照顾你的问题。
curl "http://www.example.com?m=method&args=1"
您是否使用&作为GET URL的分隔符? 或者是在一个数据?
如果是数据,则必须将其编码为HTML字符,否则用引号括起来。
&
的编码应该在URL中变成%26
。
curl "http://www.example.com?m=this%26that
把&
符号放在单引号似乎工作。 也就是说,使用像http://www.example.com/page.asp?arg1=${i}'&'arg2=${j}
这样的URLcurl返回请求的网页。
您可以使用-d参数在POST请求中指定http url参数,而不是尝试转义“&”字符,如下所示:
curl -X POST http://www.example.com \ -d arg1=this \ -d arg2=that
如果请求是一个GET,那么你还应该添加-G选项,它告诉curl用GET请求发送数据。
curl -X GET -G http://www.example.com \ -d arg1=this \ -d arg2=that
你可以用%26来代替&。 实体代码将正常工作。