Etrange comportement d'un while dans un for - RESOLU - [ KSH ] - Shell/Batch - Programmation
Marsh Posté le 11-02-2010 à 16:25:29
ca répond pas à la question, mais en ce qui concerne l'énumération à la main, tu peux utiliser seq.
seq 10 => 1 2 3 4 5 6 7 8 9 10 par exemple.
Marsh Posté le 11-02-2010 à 16:46:57
euh, sinon je crois que j'ai trouvé ton problème... tu initialise ton i en dehors de ton for...
Marsh Posté le 11-02-2010 à 18:40:14
Ben euh.... je pense pas que ce soit ça le souci :
quand tu arrives dans le while, le i est bien initialisé à 1, et donc inférieur à 3 ; sinon tu auras pas les trois lignes en sortie indexées sur TESTXX
Donc le while est correctement exécuté, c'est la boucle du FOR au dessus qui n'est plus active à la sortie du while qui me gène et que je ne comprend pas.
Mais merci quand même d'avoir jeté un oeil ;-)
Marsh Posté le 12-02-2010 à 12:28:19
Kerrozen a écrit : Ben euh.... je pense pas que ce soit ça le souci : |
La première fois uniquement (pour le premier $fic)
Marsh Posté le 13-02-2010 à 09:38:30
Kerrozen a écrit : Ben euh.... je pense pas que ce soit ça le souci : |
Mets ton i à 1 avant le while mais après le "do" du premier for
Marsh Posté le 16-02-2010 à 15:24:27
Sve@r a écrit : |
...
ah bah euh... bah...
...
Bah voui en fait hein... c'est mieux de réinitialiser la variable pour chaque passage ; ça fonctionne nettement mieux !
Bon ben, merci d'avoir palié à mon excès de neuneutisation sur ce coup là.
J'vais peut-être penser à me reconvertir dans la pizza à domicile, ou l'élevage d'escargot ^^
Sujet clos, merci à vous !
Marsh Posté le 11-02-2010 à 13:53:22
Bonjour,
J'ai tenté un truc assez simple en shell ksh, mais surprise, le résultat n'est pas du tout ce que je demande, explication :
BUT : rechercher des fichiers listés dans une fichier source dans différentes arborescences ayant un nom de USER composé d'un mot et d'un incide.
Genre CPT01, CPT02, CPT03 etc etc....
Pour l'instant je bataille simplement avec les deux boucles inclusives pour simplifier le code :
Le fichier en entrée ne contient, pas exemple que trois ligne "titi", "toto", "tata"
Le résultats est assez déroutant : la boucle du FOR ne prend que la première ligne tandis que le while est entièrement traité :
./test.ksh toto
Recherche fichier <titi> sur couloir TEST01
Recherche fichier <titi> sur couloir TEST02
Recherche fichier <titi> sur couloir TEST03
Maintenant si j'adapte le code pour avoir deux FOR (solution que je trouve un peu plus sale du fait de l'énumération des cas à la main...
Ben là ça marche super :
./test.ksh toto
Recherche fichier <titi> sur couloir TEST01
Recherche fichier <titi> sur couloir TEST02
Recherche fichier <titi> sur couloir TEST03
Recherche fichier <toto> sur couloir TEST01
Recherche fichier <toto> sur couloir TEST02
Recherche fichier <toto> sur couloir TEST03
Recherche fichier <tata> sur couloir TEST01
Recherche fichier <tata> sur couloir TEST02
Recherche fichier <tata> sur couloir TEST03
Ce n'est pas vraiment un problème seulement ça me détruit de ne pas comprendre le coup du while ! Car derrière biensûr il s'agit de transformer la valeur en dur du nombre d'environnements à tester (ici 3) en un variable, histoire d'avoir un joli WHILE [ ${i} -le ${max_env} ]....
Voilà voilà, si un gourou local KSH pouvait me prêter sa Lumière ^^
Merci d'avance
Message édité par Kerrozen le 16-02-2010 à 15:25:19