Shell script с использованием curl для прокрутки URL-адресов
Я пытаюсь создать простой script, который возьмет список запросов из TXT файла, добавит главную переменную url, затем очистит содержимое и выведет его в текстовый файл.
Вот что я до сих пор:
#!/bin/bash
url="example.com/?q="
for i in $(cat query.txt); do
content=$(curl -o $url $i)
echo $url $i
echo $content >> output.txt
done
список:
images
news
stuff
other
журнал ошибок:
curl: (6) Could not resolve host: other; nodename nor servname provided, or not known
example.com/?q= other
Если я использую эту команду прямо из командной строки, я получаю некоторый вывод в файл:
curl -L http://example.com/?q=other >> output.txt
В конечном итоге я хотел бы, чтобы результат был:
fetched: http://example.com/?q=other
content: the output of the page
followed by the next query in the list.
Ответы
Ответ 1
Используйте больше кавычек!
Попробуйте это вместо:
url="example.com/?q="
for i in $(cat query.txt); do
content="$(curl -s "$url/$i")"
echo "$content" >> output.txt
done
Ответ 2
У вас есть вложенные кавычки, попробуйте что-то вроде этого:
#!/bin/bash
url=https://www.google.fr/?q=
while read query
do
content=$(curl "{$url}${query}")
echo $query
echo $content >> output.txt
done < query.txt