OVH Cloud OVH Cloud

[Shell] Perte des espaces

3 réponses
Avatar
JohnFuss
Bonjour,

dans un shell, où je débute/galère je lis une ligne (qui finit par x
espaces) d'un fichier avec
read LIGNE
puis je l'affiche
echo "$LIGNE""x"
et là j'ai plus mes espaces

Help.......

Merci d'avance.

John

3 réponses

Avatar
lhabert
"JohnFuss" :

read LIGNE
puis je l'affiche
echo "$LIGNE""x"
et là j'ai plus mes espaces


« read » découpe sa ligne suivant les caractères présents dans la variable
IFS, qui sont donc supprimés. Il faut donc faire un « IFS='' » avant.

Avatar
lhabert
"JohnFuss" :

read LIGNE
puis je l'affiche
echo "$LIGNE""x"
et là j'ai plus mes espaces


« read » découpe sa ligne suivant les caractères présents dans la variable
IFS, qui sont donc supprimés. Il faut donc faire un « IFS='' » avant.

Pendant qu'on y est, tu veux peut-être faire un « read -r » plutôt qu'un
« read », sinon, si tu as un «  » en fin de ligne, le read va continuer à
lire la ligne suivante.

Avatar
JohnFuss
C'est génial,

rapidité, efficacité, bravo !

John

"Luc Habert" a écrit dans le message de
news:e138qp$6i$
"JohnFuss" :

read LIGNE
puis je l'affiche
echo "$LIGNE""x"
et là j'ai plus mes espaces


« read » découpe sa ligne suivant les caractères présents dans la variable
IFS, qui sont donc supprimés. Il faut donc faire un « IFS='' » avant.

Pendant qu'on y est, tu veux peut-être faire un « read -r » plutôt qu'un
« read », sinon, si tu as un « » en fin de ligne, le read va continuer à
lire la ligne suivante.