Passage de variable depuis une boucle ??? - Shell/Batch - Programmation
Marsh Posté le 10-01-2005 à 15:55:56
Piege classique de read avec les pipes... La partie gauche de ton pipe (la boucle while) est exécutée dans un sous-process (forcément, comment veux-tu qu'il fasse le cat et le read en même temps sinon). Donc already_exists est une variable d'environement dans ton sous process. Après ta boucle while, tu es à nouveau dans le process père. Evidemment already_exists n'a pas été modifié dans ce process : un process fils n'a pas accès à l'environnement de son père.
Un facon de contourner ce "problème" est de mettre toute la partie du script qui utilise already_exists entre parenthèses, de maninère à ce que toutte cette partie soit exécutée dans le même process fils. Ouvre la parenthèse avant le while, ferme la avant le return.
Marsh Posté le 10-01-2005 à 16:05:42
Bon sang mais c'est bien sur !!!
Merci beaucoup pour ton aide...
Marsh Posté le 10-01-2005 à 13:55:51
Salut à tous et toutes et bonne année...
Je voudrais vous soumettre un petit pb que j'ai avec un script shell :
me renvoie :
tablespace fr= ALERT_IDX
tablespace2= ALERT
already_exists 32= 0
already_exists 34= 0
already_exists 36=
already_exists 39=
already_exists 61= 0
tablespace fr= ALERT_IDX
tablespace2= ALERT
already_exists 32= 0
already_exists 34= 0
tablespace fr= ALERT_IDX
tablespace2= ALERT_IDX
already_exists 28= 1
already_exists 36= 0
already_exists 39= 0
already_exists 61= 0
tablespace fr= ALERT_IDX
tablespace2= ALERT
already_exists 32= 0
already_exists 34= 0
tablespace fr= ALERT_IDX
tablespace2= ALERT_IDX
already_exists 28= 1
already_exists 36= 0
already_exists 39= 0
already_exists 61= 0
Ce qui veut dire que la variable already_exists ne passe pas correctement la sortie de la boucle dans laquelle elle est initiée...
Je ne comprends pas ce qui peut se passer...
Quelqu'un peut-il me renseigner SVP ?