2013-04-21 14 views
17

Próbowałem utworzyć prosty skrypt, który pobierze listę zapytań z pliku .txt, dołączy główną zmienną url, a następnie zeskrobuje zawartość i wypisze ją w tekście plik.Skrypt powłoki używający zawijania do zapętlenia adresów URL

Oto co mam do tej pory:

#!/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 

lista:

images 
news 
stuff 
other 

dziennika błędów:

curl: (6) Could not resolve host: other; nodename nor servname provided, or not known 
example.com/?q= other 

Jeśli mogę użyć tego polecenia prosto z linii poleceń uzyskać niektóre dane wyjściowe do pliku:

curl -L http://example.com/?q=other >> output.txt 

Docelowo chciałbym wyjście będzie:

fetched: http://example.com/?q=other 
content: the output of the page 

followed by the next query in the list. 

Odpowiedz

3

masz zagnieżdżone cytaty, spróbuj coś takiego:

#!/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 
Powiązane problemy