Bonjour,

J'ai un petit souci. J'ai un fichier paramètre que je parcours avec un while pour en récupérer les paramètre nécessaire à l'exécution d'un script.
Dans ce fichier j'ai des chemins de définis pour la création de fichiers log, travail ...
Le soucis c'est que j'aimerais pouvoir mettre par exemple $HOME/travail dans mon fichier paramètre mais cela ne fonctionne par car il ne substitut pas $HOME par /usr/toto par exemple.
Voila un exemple du fichier paramètre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
blablabla
 
log_dir=$HOME/travail/log
work_dir=$HOME/work
 
blablabla
Et la boucle que j'utilise pour le décodage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
while read line
do
 
	# Remove the carriage return from $line
	line=`echo $line | tr -d '\r\n'`
	# decode the line
	field=`echo $line | awk -F "=" '{print $1}'`
	value=`echo $line | awk -F "=" '{print $2}'`
 
	case $field in 
		log_dir ) dirlog=$value;;
		work_dir ) dirwork=$value;;
		...
	esac
 
done < $parameter_file
Dans l'état actuel si j'affiche dirlog j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
echo $dirlog
$HOME/travail/log
Alors que je souhaite /usr/toto/travail/log

J'espère que j'ai été assez clair.

Qui aurait une solution svp ?
Merci.

PS : Si cette réponse a déjà été donnée désolé pour le doublon, mais je ne l'ai pas trouvée.