Wget

帶括號的 wget在網址中

  • March 21, 2022

我必須在 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,包括括號?

你的 shell 正在作用於&,它結束一個命令;你也需要逃避它(以及?which like[...]是一個萬用字元):

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

或者

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

請參閱什麼是 shell 的控制和重定向運算符?

引用自:https://unix.stackexchange.com/questions/696225