Script Shell utilisant curl pour faire une boucle à travers les urls
j'ai essayé de créer un script simple qui prendra une liste de requêtes à partir d'un .txt fichier, ajouter la variable url principale, puis racler le contenu et la sortie dans un fichier texte.
Voici ce que j'ai jusqu'à présent:
#!/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
liste:
images
news
stuff
other
journal d'erreur:
curl: (6) Could not resolve host: other; nodename nor servname provided, or not known
example.com/?q= other
si j'utilise cette commande directement depuis la ligne de commande, j'obtiens une sortie dans le fichier:
curl -L http://example.com/?q=other >> output.txt
en fin de compte, je voudrais que la sortie être:
fetched:    http://example.com/?q=other
content:    the output of the page
followed by the next query in the list.
19
                
            
                demandé sur
                Mena Ortega
                2013-04-21 16:53:55
            
        2 réponses
Utilisez plus de citations !
- http://mywiki.wooledge.org/Quotes
- http://mywiki.wooledge.org/Arguments
- http://wiki.bash-hackers.org/syntax/words
Essayez plutôt ceci :
url="example.com/?q="
for i in $(cat query.txt); do
    content="$(curl -s "$url/$i")"
    echo "$content" >> output.txt
done
21
	                    
	                
	                    répondu
	                    Gilles Quenot
	                    2013-04-21 12:58:41
	                
	            Vous avez imbriquée citations, essayez quelque chose comme ceci:
#!/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
3
	                    
	                
	                    répondu
	                    David George
	                    2013-04-21 13:07:35