url 中带有括号 [] 的 Wget

url 中带有括号 [] 的 Wget

我必须在 cronjob 中调用 url,但 wget 从 url 中排除第二个参数。
网址格式:

https://example.com/frontend/?ml[do]=doStuff&ml[auth]=someAuthCode

Wget 排除了第二个参数,所以我变成“访问被拒绝”

我也尝试过:

https://example.com/frontend/?ml\[do\]=doStuff&ml\[auth\]=someAuthCode

-d 确认删除

---request begin---
GET /frontend/?ml[do]=doStuffHTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: example.com
Connection: Keep-Alive
---request end---

如何使用 2 个包含括号的 get 变量调用正确的 url?

答案1

您的 shell 正在作用于&,这会结束命令;你也需要转义它(以及?like[...]是一个通配符):

wget https://example.com/frontend/\?ml\[do\]=doStuff\&ml\[auth\]=someAuthCode

或者

wget 'https://example.com/frontend/?ml[do]=doStuff&ml[auth]=someAuthCode'

shell 的控制和重定向运算符是什么?

相关内容