Как включить символ '&' в оператор bash curl

Я пытаюсь использовать curl в bash для загрузки веб-страницы, но символ & в URL-адресе не интерпретируется как символ, как хотелось бы. Любые идеи о том, как я могу убедить bash в том, что символ & является просто скучным персонажем и ничего особенного?

Ответ 1

Кажется, что использование одиночных кавычек вокруг символа &. То есть, используя URL-адрес, например http://www.example.com/page.asp?arg1=${i}'&'arg2=${j} curl возвращает запрошенную веб-страницу.

Ответ 2

Помещение всего URL внутри двойных кавычек должно позаботиться о вашей проблеме.

Ответ 3

curl "http://www.example.com?m=method&args=1"

Используете ли вы & как разделитель для URL-адреса GET? Или в куске данных?

Если это в данных, вы должны закодировать его на HTML-символ, если нет, окружать кавычками.

Кодировка для & должна стать %26 в URL.

curl "http://www.example.com?m=this%26that

Ответ 4

Вместо того, чтобы пытаться вывести символы "&", вы можете указать параметры http-url в POST-запросах с параметром -d, как показано ниже:

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

Ответ 5

Вы можете использовать %26 вместо &. Код объекта будет работать нормально.