Forcer l'interprétation de variables

Zent -  
enfinbref94 Messages postés 13 Statut Membre -
Bonjour,

J'ai eu beau chercher, je ne vois pas comment résoudre cette énigme...
J'ai un fichier avec des chemins, j'aimerais faire un ls -l de ces chemins

Je fais donc :
while read line ;do ls -l "$line" >>final.txt; done < path.txt

Sauf que dans path.txt j'ai :
$PATH1/aaa/bbb
$PATH2/ccc/hhh

Et quand j'exécute la commande, j'ai une erreur :
ls: 0653-341 The file $PATH1/aaa/bbb does not exist.
ls: 0653-341 The file $PATH2/ccc/hhh does not exist.

Quelqu'un voit comment faire pour "forcer" l'interprétation des variables $PATH1 et $PATH2 lorsque je fais le ls -l $line ???

Merci beaucoup d'avance!!!!!
A voir également:

4 réponses

yoann_tux Messages postés 445 Statut Membre 95
 
essaye en perl par exemples avec les guillemets ;)
0
Zent
 
Je sais pas trop je débute déjà sous Unix et je connais pas le shell. J'aimerais bien pouvoir me dépatouiller avec un script... :(

Merci quand même je me pencherai dessus si je trouve vraiment pas de réponse, mais là, j'ai vraiment pas le courage.
0
Zent
 
En fait, dans un premier temps, je voudrais avoir les nouveaux chemins (cad que les variables d'environnement ont pris leur valeur) dans un autre fichier

awk -F / ' /PATH1/ { print $PATH1"/"$2"/"$3 }' path.txt >> final.txt
awk -F / ' /PATH2/ { print $PATH2"/"$2"/"$3 }' path.txt >> final.txt

Je ferai ensuite les ls avec un dernier awk sur le fichier final.txt

Mais là aussi j'ai un souci, car awk ne veut pas me faire les print des variables d'environnement...

Je serais vraiment très reconnaissant si quelqu'un pouvait m'aider... :(
0
enfinbref94 Messages postés 13 Statut Membre
 
Hello !

Essaie ça :

while read line ;do eval "echo $line" | ls -l >>final.txt; done < path.txt
0