Forcer l'interprétation de variables

[Fermé]
Signaler
-
Messages postés
12
Date d'inscription
lundi 17 février 2014
Statut
Membre
Dernière intervention
27 mai 2014
-
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

Messages postés
437
Date d'inscription
lundi 28 février 2005
Statut
Membre
Dernière intervention
24 juillet 2008
95
essaye en perl par exemples avec les guillemets ;)
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.
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... :(
Messages postés
12
Date d'inscription
lundi 17 février 2014
Statut
Membre
Dernière intervention
27 mai 2014

Hello !

Essaie ça :

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