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 :
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 :
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:
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.
Partager