Lecture de var. d'env a partir d'un fichier

Résolu
darkZangetsu Messages postés 28 Statut Membre -  
darkZangetsu Messages postés 28 Statut Membre -
Bonjour,

j'ai un fichier contenant des variables d'env contenant les chemins de repertoires.
et j dois ecrire un script qui doit creer des repertoires a partir des valeurs de ces variables
voici le code que j'ai ecris:

cat fich.txt|while read line
do
a=`echo $line`
mkdir `echo $a`
done

supposons que j'ai une seule variable ds fich.txt qui est $VAR et qui a comme valeur /home/app
alors repertoire qui va etre créer est $VAR et non /home/app
j ne comlprends pa pkoi et j trouve pa comment remedier a ça

merci
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    quel est le format exact de fich.txt ?
    mais tu peux faire
    cat fich.txt|while read var chemin
    do
    mkdir $chemin
    done
    0
    1. darkZangetsu Messages postés 28 Statut Membre
       
      le probleme ici c'est que la variable "chemin" ne contient l'adresse d'un repertoire, mé elle contient le nom d'une variable d'environnement qui, elle, contient l'adresse
      et le probleme ici c'est que j'arrive pas a le recuperer ce contenu en fesant la boucle while
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Ca serait tellement plus simple que tu affiches le contenu de fichi.txt
    0
    1. darkZangetsu Messages postés 28 Statut Membre
       
      ceci est un exemple de fich.txt:
      VAR_COM
      VAR_JAVA
      VAR_C
      ce sont les noms de 3 variables d'env. avec :
      VAR_COM=/home/project/com
      VAR_JAVA=/home/project/java
      VAR_C=/home/project/c
      en essayant de les créer j'obtiens 3 repertoires avec comme noms $VAR_COM, $VAR_JAVA et $VAR_C

      mé bon la j viens de trouver une autre méthode que j'aime pas trop bien qu'elle fonctionne, la voila:

      cat fich.txt|while read line
      do
      var=`set|grep "^${line}=.*"|cut -d "=" -f 2` ///ici je rcupere la liste des var. d'env. et j fé la desus un petit traitement
      mkdir $var ///pour recuperer leurs valeurs
      done
      0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    c'est juste mais on peut simplifier

    cut -d "=" -f 2 < fich.txt | while read line
    do
    mkdir $line
    done
    0
    1. darkZangetsu Messages postés 28 Statut Membre
       
      merci dubcek
      j vé me contenter de cette solution puisk'elle fonctionne
      thx
      0