Probleme script shell linux

Fermé
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013 - 11 mars 2013 à 17:22
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 11 mars 2013 à 20:01
Bonjour,

Bonsoir, j'ai un probleme au niveau de l'execution de mon script c-shell. En effet, lorsque j'execute mon script shell, le message suivant apparait:

Unmatched '.

j'aimerais donc savoir à quoi ça correspond. merci et voici mon script :

il permet de récuperer rafales de vents sur un site météo sur 5 jours par exemple du 25 décembre au 30 décembre et de mettre ces infomations dans un fichier texte:

#!/bin/csh

# vent jour mois annee

set annee_actuel = 'date '+%Y''

set annee = $3

set annee_init = $3

set mois = $2

set mois_init = $2

set jour = $1

set jour_init = $1

set bissextile = 0

set bissextile2 = 0

set bissextile3 = 0

set v = 0

set i = 0

set j = 1

#########################################

@ bissextile = $annee % 4

@ bissextile2 = $annee % 400

@ bissextile3 = $annee % 100

while( $annee < 1999 || $annee > $annee_actuel )

echo 'Veuillez entrer une année comprise entre 1999 et '$annee_actuel' ? '

set annee = $<

end

while( $mois > 12 || $mois < 0 )

echo 'Veuillez entrer un mois compris entre 1 (Janvier) et 12 (Décembre) ?'

set mois = $<

end

#Gestion du jour a faire

if( $jour < 10 )then

switch ( $jour )

case 1 :

set jour = 01

breaksw

case 2 :

set jour = 02

breaksw

case 3 :

set jour = 03

breaksw

case 4 :

set jour = 04

breaksw

case 5 :

set jour = 05

breaksw

case 6 :

set jour = 06

breaksw

case 7 :

set jour = 07

breaksw

case 8 :

set jour = 08

breaksw

case 9 :

set jour = 09

breaksw

default :

breaksw

endsw

else

endif

if( $mois < 10 )then

switch ( $mois )

case 1 :

set mois = 01

breaksw

case 2 :

set mois = 02

breaksw

case 3 :

set mois = 03

breaksw

case 4 :

set mois = 04

breaksw

case 5 :

set mois = 05

breaksw

case 6 :

set mois = 06

breaksw

case 7 :

set mois = 07

breaksw

case 8 :

set mois = 08

breaksw

case 9 :

set mois = 09

breaksw

default :

breaksw

endsw

else

endif

#########################################

mkdir TEMPMETEO

cd TEMPMETEO

touch tab

while($i<5)

set url = 'http://meteo-bretagne.fr/archive-observation.php?

icao=07200&d='$jour'&m='$mois'&y='$annee'&metar='

wget "$url" -o m.trace

mv archive* meteo.data

echo $j' ''grep 'km/h' meteo.data | head -1 | cut -d' ' -f3 | cut -d'>' -f2' >> tab

@ i++

if( $i == 5)then

else

@ jour++

endif

@ j++

@ bissextile = $annee % 4

@ bissextile2 = $annee % 400

@ bissextile3 = $annee % 100

if( $mois == 12 && $jour > 31 )then

set jour = 01

set mois = 01

@ annee++

else

endif

if( $mois == 02 && $jour == 30)then

set mois = 03

set jour = 01

else if( $mois == 02 && $jour == 29)then

if( $bissextile != 0)then

set mois = 03

set jour = 01

else

if( $bissextile2 != 0 && $bissextile3 == 0 )then

set mois = 03

set jour = 01

else

endif

endif

else

endif

if( $mois == 04 || $mois == 06 || $mois == 09 || $mois == 11 )then

if( $jour > 30 )then

set jour = 01

@ mois++

else

endif

if( $jour > 31 )then

set jour = 01

@ mois++

else

endif

if( $jour < 10 )then

switch ( $jour )

case 1 :

set jour = 01

breaksw

case 2 :

set jour = 02

breaksw

case 3 :

set jour = 03

breaksw

case 4 :

set jour = 04

breaksw

case 5 :

set jour = 05

breaksw

case 6 :

set jour = 06

breaksw

case 7 :

set jour = 07

breaksw

case 8 :

set jour = 08

breaksw

case 9 :

set jour = 09

breaksw

default :

breaksw

endsw

else

endif

if( $mois < 10 )then

switch ( $mois )

case 1 :

set mois = 01

breaksw

case 2 :

set mois = 02

breaksw

case 3 :

set mois = 03

breaksw

case 4 :

set mois = 04

breaksw

case 5 :

set mois = 05

breaksw

case 6 :

set mois = 06

breaksw

case 7 :

set mois = 07

breaksw

case 8 :

set mois = 08

breaksw

case 9 :

set mois = 09

breaksw

default :

breaksw

endsw

else

endif

end

cd ..

cp TEMPMETEO/tab .

rm -r TEMPMETEO









A voir également:

6 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 17:35
Salut,

Apparemment il manquerait une quote ;-\

Par contre comme le code de CCM ne fait pas la différence entre une quote simple et une quote inverse, pourrais-tu poster ton code sur http://pastebin.fr/ en choisissant le code "bash" (puisque le csh n'est pas présent). ?

Merci
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 17:41
Merci mais ou on voit les erreurs je vois pas très bien sur le site ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 17:44
On ne voit pas les erreurs en fait, c'est surtout que le code est coloré et qu'on peut mieux déceler les erreurs, mais pour ça il faut nous donner l'URL obtenu afin qu'on puisse aller y jeter un oeil ;-\
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 17:45
Ah d'accord ^^ voici l'url: http://pastebin.fr/26612
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 17:52
A la ligne 203, pourquoi ton URL est-elle sur 3 lignes ?
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 17:57
sur mon script elle est sur 2 lignes.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 17:58
Admettons, normalement une URL est en un seul morceau, non ? ;-\
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 18:08
sa marche toujours pas :/
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 18:26
Normal, tu as du faire un copier coller de ton code, non ?

Regarde sur ce lien : http://pastebin.fr/26614

J'ai changer (ligne 3) les quotes simples par des quotes inverses
J'ai mis la ligne 203 sur une seule.
Et pour finir ligne 209 j'ai aussi changer les quotes.

Chez moi le script de cette façon marche.
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 18:37
il marche il nous demande d'entrer une année mais ensuite il ne me demande pas le jours a rentrer. pareil pour toi ou non ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 18:39
Ben en fait je lui ai donné le jour le mois et l'année en paramètre :

./script.csh 11 03 2013
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 18:31
je vais essayer e je t'en dis des nouvelles. ^^
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 18:47
par contre je crois que les valeurs correspondent pas sur le site...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 18:57
Quel est le but du script ?
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 19:03
le but du script c'est de recuperer la case ou il y 'a ecris rafale max sur le site https://www.meteo.bzh/observations-station-meteo-Rennes-St-Jacques?icao=07110&d=15&m=03&y=2004&metar=
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 19:05
et de faire une boucle tel que le script recuperer les valeurs sur 5 jours a partir du 20 decembre 2000 par exemple .
0
loutnek978 Messages postés 21 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 11 mars 2013
11 mars 2013 à 19:08
je pense que c'est peut etre au niveau du cut qu'il ya une erreur
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
11 mars 2013 à 19:18
Pour la récupération de la valeur, un truc du genre devrait faire l'affaire :
wget -q -O- 'http://meteo-bretagne.fr/archive-observation.php?icao=07110&d=15&m=03&y=2004&metar=' | w3m -dump -T text/html | grep -B 1 'Normales calculées' | awk -F'km/h' '{print $2}'
     53.7

Après pour la boucle il doit y avoir plus simple à faire que celle de ton script ;-\

Le csh est obligatoire comme shell ?
0