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

Résolu
darkZangetsu Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
darkZangetsu Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
quel est le format exact de fich.txt ?
mais tu peux faire
cat fich.txt|while read var chemin
do
mkdir $chemin
done
0
darkZangetsu Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
Ca serait tellement plus simple que tu affiches le contenu de fichi.txt
0
darkZangetsu Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
c'est juste mais on peut simplifier

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