Pages : 1
#1 Le 23/03/2008, à 14:50
- bidulesfr
[réglé] bash: Erreur de division
Salut,
Je cherche à faire un petit script en bash. L'idée est assez simple. Récupérer un nombre d'une page html, puis faire une petite opération sur ce nombre.
TDP= grep tdp < test.htm | awk -F "<td>tdp" '{print $2}' | awk -F "</td>" '{print $1}'
echo $(($TDP/4))
Ce qui me renvoi comme erreur:
./test.sh: line 12: /4: erreur de syntaxe : opérande attendu (error token is "/4")
(La ligne 12 correspond à la 2ème ligne du code ci-dessus, j'ai simplifié pour être plus clair)
Par expérience, ça me laisse plutôt penser à une erreur de type de variable. Genre division avec une chaine. Mais il me semble pourtant bien quand bash, les variables ne sont pas typé, donc je m'attendrai plus à avoir au pire un nombre aberrant plutôt qu'une erreur.
Bref, je ne sais pas trop par quel coté le prendre ce petit !
A+
Dernière modification par bidulesfr (Le 23/03/2008, à 15:26)
Hors ligne
#2 Le 23/03/2008, à 15:05
- best_friend_fr
Re : [réglé] bash: Erreur de division
salut
fais un echo $TDP sur la lige d´avant pour verifier le contenu
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 23/03/2008, à 15:11
- Saito
Re : [réglé] bash: Erreur de division
TDP= grep tdp < test.htm | awk -F "<td>tdp" '{print $2}' | awk -F "</td>" '{print $1}' echo $(($TDP/4))
Ce qui me renvoi comme erreur:
./test.sh: line 12: /4: erreur de syntaxe : opérande attendu (error token is "/4")
Oui, il y a une erreur, tu déclares TDP comme étant une chaîne vide ( TDP= ) puis tu éxecutes ta commande (grep ...), du coup «echo $(($TDP/4))» se développe en «echo $(( /4 ))» d'où l'erreur.
Ton assignation doit ressembler à ça:
TDP=$(grep tdp test.htm | awk -F "<td>tdp" '{print $2}' | awk -F "</td>" '{print $1}')
sans espaces, et avec $() qui te permet de récupérer la sortie de ta commande (cf. man bash, Command Substitution)
Aku-Soku-Zan_Shinsengumi
Hors ligne
#4 Le 23/03/2008, à 15:25
- bidulesfr
Re : [réglé] bash: Erreur de division
Ah ba moi qui n'avait jamais trop comprit l'utilité de $(), cette fois, je crois que c'est fait !
Merci bien
Hors ligne