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!!!!!

4 réponses

  1. yoann_tux Messages postés 445 Statut Membre 96
     
    essaye en perl par exemples avec les guillemets ;)
    0
  2. 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
  3. 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
  4. 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