Visibilités des variables

Visibilités des variables - Shell/Batch - Programmation

Marsh Posté le 27-09-2005 à 16:37:21    

Bonjour,
 
Je tente d'afficher le contenu d'une variable mais je n'y arrive pas.
Le principe est de lire dans un boucle while le contenu d'un fichier ligne par ligne, de stocker les lignes lues dans une variable, et à la fin de la boucle, d'afficher le contenu de cette variable (la variable sera passée à une fonction pour un autr traitement).
Voici le code

Code :
  1. #!/bin/sh
  2. # Récupération du nom du fichier à lire
  3. fichier=$1
  4. var=''
  5. # Lecture du fichier ligne par ligne puis stockage dans une variable
  6. while read ligne
  7. do
  8.      var=$var'\n'$ligne
  9. done < $fichier
  10. echo "$var"

A la ligne 10 (echo "$var" ), rien ne s'affiche. Un coup de main please.

Reply

Marsh Posté le 27-09-2005 à 16:37:21   

Reply

Marsh Posté le 27-09-2005 à 17:16:51    

Peut-être que "var" est un mot réservé et qu'il faudrait prendre "var1". Par ailleurs, je n'ai jamais essayé "done < $fichier". D'habitude je fais :

Code :
  1. cat $fichier | while read ligne
  2.    do
  3.       ma_var=$ligne
  4.    done
  5.    echo $ma_var


Reply

Marsh Posté le 28-09-2005 à 13:06:02    

J'ai essayé ta solution olivtill, mais ça ne marche pas!
echo $ma_var n'affiche rien.

Reply

Marsh Posté le 28-09-2005 à 18:55:35    

Ton premier script marche tres bien chez moi (linux et bash, AIX et ksh). Pour l'explication pour le script de olivthill (qui ne marche pas, a part sous certaines versions de ksh), voir http://forum.hardware.fr/hardwaref [...] 2108-1.htm

Reply

Marsh Posté le 29-09-2005 à 13:48:36    

Merci matafan.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed