Script utilisant wget et --header

Script utilisant wget et --header - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 08-07-2005 à 12:14:08    

Salut,
Je dois ecrire un shellscript qui utilise le validateur CSS du W3C pour... valider des CSS (mais seuls les headers de retour m'interessent).
Les CSS a valider doivent etre dans le fichier tests.urls sous forme soit d'url, soit de chemins vers des fichiers locaux. Le script fait ensuite la requete adequate au serveur.
Voila le code qu j'ai ecrit:

Code :
  1. #!/bin/sh
  2. # EDIT THIS
  3. VALIDATOR="http://w3cstag8:8001/css-validator/validator"
  4. TESTFILE="tests.urls"
  5. ACCEPT_CHARSET="iso-8859-2"
  6. # END EDIT THIS
  7. WGET_OPTIONS="-S --spider"
  8. if [ "$ACCEPT_CHARSET" != "" ]
  9. then
  10.     HEADER="--header='Accept-Charset: $ACCEPT_CHARSET'"
  11. fi
  12. while read LINE
  13. do 
  14.   if echo $LINE | grep "http://" > /dev/null
  15.   then
  16.       wget $WGET_OPTIONS $HEADER "$VALIDATOR/?uri=$LINE&usermedium=all"
  17.   else
  18.       TEXT=`cat $LINE`
  19.       wget $WGET_OPTIONS $HEADER "$VALIDATOR/?text=$TEXT&usermedium=all"
  20.   fi
  21. done < $TESTFILE


Voila ce que j'obtiens dans le cas d'une url (ici <pub>http://sparodez.celeonet.fr</pub> )(le resultat est le meme avec un fichier):

Citation :

--12:02:34--  http://iso-8859-2'/
           => `index.html'
Resolving iso-8859-2'... failed: Name or service not known.

--12:02:34--  http://w3cstag8:8001/css-validator [...] medium=all
           => `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Cache-Control: no-cache
  Connection: keep-alive
  Date: Fri, 08 Jul 2005 10:02:34 GMT
  Pragma: no-cache
  Content-Length: 19033
  Content-Language: en
  Content-Type: text/html;charset=utf-8
  Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK
 
 
FINISHED --12:02:35--
Downloaded: 0 bytes in 0 files


au lieu de ca

Citation :

--12:04:30--  http://w3cstag8:8001/css-validator [...] medium=all
           => `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Cache-Control: no-cache
  Connection: keep-alive
  Date: Fri, 08 Jul 2005 10:04:30 GMT
  Pragma: no-cache
  Content-Length: 19033
  Content-Language: en
 Content-Type: text/html;charset=iso-8859-2
  Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK

lorsque je tape la commande suivante:

Citation :

wget -S --spider --header='Accept-Charset: iso-8859-2' "http://w3cstag8:8001/css-validator/validator/?uri=http://sparodez.celeonet.fr&usermedium=all"


Comme on peut voir, il fait 2 requete, la premiere sur http://iso-8859-2'/ n'etant pas normale. Et du coup, le header d'envoi ne contient pas les bonnes informations => le header de retour non plus (utf-8 au lieu de iso-8859-2 dans ce cas).
Je pense que le probleme se situe au niveau de la variable $HEADER a cause de quote, mais je ne vois pas comment le resoudre.
 
Merci,
 
Ze Reaper
 
PS: Pour mes tests je n'utilise pas http://jigsaw.w3.org, mais une version encore en developpement de ce validateur. Pour tester le code, il faut donc changer la variable $VALIDATOR par http://jigsaw.w3.org/css-validator/validator. Il faut cependant noter que la version officielle du validateur n'inclut pas encore la gestion des Accept-Charset (ca ne saurait tarder :)), et donc ne renvoie pas de charset dans la reponse.


Message édité par Ze Reaper le 08-07-2005 à 12:16:27
Reply

Marsh Posté le 08-07-2005 à 12:14:08   

Reply

Marsh Posté le 11-07-2005 à 09:01:00    

Ca pour un bide c'est un bide  :ouch:  
Bon j'up le topic parce qu'après tout la réponse peut m'intérésser :D
 
 
Normalement si je me trompe pas :

  • dans les "single quote" tous les caractères sont quoted, même le backslash. (Le résultat est un unique mot)
  • dans les "double quotes" on a quand même la substitution des variables ($ est interprété) mais pas * ou ? par exemple. (Le résultat est un unique mot là aussi)


 
 
Donc si ya qqun qui comprend pourquoi ca marche pas :D


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 13-07-2005 à 13:04:15    

/me a peu de reponses :cry:  
 
Merci de me soutenir dans ma detresse xav

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed