如何在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来代替&。 实体代码将正常工作。