<分区>
我有一个似乎无法解决的问题。
我需要向给定的 URL 发出 curl 请求,并且该 URL 中需要美元符号。
所以,例如:
www.example.com/mypath/function&$filter=whatever
现在,如果我将 URl 放在单刻度中,或者如果我用反斜杠转义美元符号,然后将其放在双引号中,我可以从命令行很好地执行此操作。
显然,如果您不执行上述任一操作,就会出现问题,因为 bash 会看到“$”并将其后的任何内容解释为变量名。
所以当我尝试时:
URL="www.example.com/mypath/function&\\\$filter=whatever"
MYOUTPUT=$(curl -s --header "Authorization: $HEADER" "$URL")
它不能正常工作。
当我尝试
URL="www.example.com/mypath/function&\$filter=whatever"
MYOUTPUT=$(curl -s --header "Authorization: $HEADER" "'$URL'")
它不能正常工作。
我做错了什么?
我可以看出它无法正常工作,因为服务器在脚本中的响应方式与在命令行中的响应方式不同。如果查询没有正确完成,网站会以某种默认方式响应,我总是通过脚本获得默认响应。