#1 Le 22/09/2009, à 08:29
- yanick_cangaeld
programme argument et problème avec while
Bonjour,
Voilà un petit programme qu'on me donne avec la boucle while . Quand je l'exécute en csh ça m'affiche : while: Expression Syntax.
#!/bin/csh
@ index=2
while($index<=$#argv)
if($argv[$index]==$argv[1]) then
echo reussi
else @ index+=1
endif
end
Pourquoi ça m'affiche ça et pourquoi ce programme ne s'exécute-il pas ?
Hors ligne
#2 Le 22/09/2009, à 12:15
- bloublou
Re : programme argument et problème avec while
mets des espaces autour de <=
pour faire
while($index <= $#argv)
Hors ligne
#3 Le 22/09/2009, à 14:34
- yanick_cangaeld
Re : programme argument et problème avec while
J'ai fait comme tu m'as dit mais maintenant quand je veux exécuter le script ça ne fait plus rien ?
Hors ligne
#4 Le 22/09/2009, à 19:09
- bloublou
Re : programme argument et problème avec while
J'ai pas bien compris ce que tu cherchais à faire, mais voici un truc un peu modifié qui fonctionne :
@ index=2
while ($index <= $#argv)
if ($argv[$index] == $argv[1]) then
echo reussi
exit
else @ index+=1
endif
end
Lance le comme ceci. Il affichera « réussi » si le premier de ses arguments se trouve en 2 exemplaires, sinon il n'affichera rien.
Par exemple
./test.csh bonjour bite poil bonjour
Affichera reussi
./test.csh 1 2 3 4 5
N'affichera rien.
./test.csh bonjour poil poil
N'affichera rien.
Si tu cherches à faire quelque chose de précis, demande-moi, j'essayerai de t'aider
Hors ligne
#5 Le 22/09/2009, à 20:50
- yanick_cangaeld
Re : programme argument et problème avec while
En fait ce programme doit permettre de repérer si un argument est égal au premier argument . ça a l'air de fonctionner de la façon dont tu as ecrit le code , je te remercie
Hors ligne