Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/12/2007, à 14:05

miraks

while read ne retourne pas les \

Lorsque je lis un fichier avec "while read", le caractere "\" est supprimé de la ligne lue.

Exemple, si j'execute le script suivant:

echo "A\\B" | while read L
do
  echo $L
done

Le résultat est "AB" au lieu de "A\B".

Comment faire pour lire un fichier ligne à  ligne en gardant les "\" ?

Par avance merci.


Skrooge, a personal finances manager powered by KDE
Donate

Hors ligne

#2 Le 30/12/2007, à 19:37

olivier.d75

Re : while read ne retourne pas les \

Si on remplace les guillemets " par des quotes ', ça marche :

echo 'A\\B' | while read L
do
  echo $L
done

Hors ligne

#3 Le 31/12/2007, à 10:54

miraks

Re : while read ne retourne pas les \

olivier.d75 a écrit :

Si on remplace les guillemets " par des quotes ', ça marche :

echo 'A\\B' | while read L
do
  echo $L
done

C'est normal car le résultat de echo 'A\\B'  est A\\B
Et comme le read supprime un \, ca affiche A\B.
Il manque donc un \.

Ce n'est donc pas la solution.


Skrooge, a personal finances manager powered by KDE
Donate

Hors ligne

#4 Le 31/12/2007, à 11:35

olivier.d75

Re : while read ne retourne pas les \

ça semble marcher avec l'option -r :

echo "A\\B" | while read -r L
do
  echo $L
done

Hors ligne