Bonjour,
j'ai un problème de comportement avec le script suivant, dont le but est de récupérer une variable dans un fichier de config, par sa clé.
Le fichier ressemble à ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
BOUCHON_HOST=11.22.33.44
BOUCHON_LOGIN=login
BOUCHON_PWD=motdepasse
BOUCHON_RACINE=/un/chemin/normal/
et le script:
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
# $1= la cle recherchée $2=le fichier dans lequel lire
getPropertyFile(){
 
  VALEUR=""
  while read Line
  do
  	echo ${Line} | awk -F"=" '{print $1}' | read CLE
  	if [ $CLE = $1 ]
  	then
  		echo ${Line} | awk -F"=" '{print $2}' | read VALEUR
  		VALEUR_TMP=X${VALEUR}X
  		if [ ${VALEUR_TMP} = "XX" ]
    	then
    			VALEUR="VALEUR NON TROUVEE"
      fi
  	fi
  done < $2
}
 
 
getPropertyFile BOUCHON_HOST paramFtp.cnf
FTPHOST=$VALEUR
getPropertyFile BOUCHON_LOGIN paramFtp.cnf
FTPLOGIN=$VALEUR
 
 
echo $FTPHOST
echo $FTPLOGIN
echo "et la c'est le drame:"
echo "$FTPHOST $FTPLOGIN"
Les impressions de mes variables une par une se passent bien, mais quand je les imprime ensemble, j'ai un vieux bug, comme si mes variables se superposaient (en plus le troisième echo commence par un espace):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
wmadmD01 MAGELLAN:# ./test.sh
11.22.33.44
login
et la c'est le drame:
 login33.44
wmadmD01 MAGELLAN:#
Quelqu'un a une idée?
J'ai essayé diverses combinaisons de tr et de sed pour supprimer les caractères spéciaux mais sans résultat :'(
Merci d'avance