Я пытаюсь использовать curl в bash для загрузки веб-страницы, но &
символ в URL-адресе не интерпретируется как символ, как мне хотелось бы. Есть идеи, как я могу убедить bash, что символ &
- это просто скучный персонаж и ничего особенного?
100
&
символ с\&
,'&'
,"&"
,^&
но не смогли получить URL , чтобы правильно оценить. На самом деле, все'&'
работает, когда я запускаю команду curl из Terminal.app, но не работает, когда я помещаю ее в сценарий bash, оборачиваю его в цикл и запускаю.Ответы:
Помещение всего URL-адреса в двойные кавычки должно решить вашу проблему.
источник
${i}
не возвращает значения.curl "http://www.example.com?m=method&args=1"
Вы используете & в качестве разделителя для URL-адреса GET? Или в обрывке данных?
Если он находится в данных, вы должны закодировать его в символ HTML, если нет, заключите его в кавычки.
Кодировка для
&
должна быть%26
в URL.curl "http://www.example.com?m=this%26that
источник
&
символ как фрагмент данных, почти так же, как вы показали. Загвоздка в том, что вместо числовых значений я использую${i}
. Итак, я хочу получитьhttp://www.example.com?m=method&args=${i}
оценку как URL-адрес.Помещение
&
символа в одинарные кавычки, кажется, работает. То есть использование URL-адреса, такого какhttp://www.example.com/page.asp?arg1=${i}'&'arg2=${j}
curl, возвращает запрошенную веб-страницу.источник
Вместо того, чтобы пытаться использовать escape-символы "&", вы можете указать параметры URL-адреса http в запросах POST с параметром -d, как показано ниже:
Если запрос является GET, вам также следует добавить параметр -G, который сообщает curl о необходимости отправки данных с помощью запроса GET.
источник
%26
Вместо этого можно использовать&
. Код объекта будет работать нормально.источник
Использовать параметр
--url
с двойными кавычками у меня сработалисточник