Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 tongue

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