Я пытаюсь использовать curl в bash для загрузки веб-страницы, но символ &
в URL-адресе не интерпретируется как символ, как хотелось бы. Любые идеи о том, как я могу убедить bash в том, что символ &
является просто скучным персонажем и ничего особенного?
Как включить символ '&' в оператор bash curl
Ответ 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
вместо &
. Код объекта будет работать нормально.