Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 11-07-2011 10:21:21

patrickm7
Membre
Inscription : 11-07-2011

Problème echo sous debian

Bonjour,
Je voudrais utiliser le echo dans un shell sous debian 6 et j'ai le souci suivant :
echo "blabla \c" m'affiche blabla \c au lieu de m'afficher blabla (\c étant pour ne pas sauter de ligne). Merci pour votre aide.

Hors ligne

#2 11-07-2011 10:46:32

cthuluh
Membre
Distrib. : stable
Noyau : stable
(G)UI : ratpoison
Inscription : 17-08-2010

Re : Problème echo sous debian

Je ne te donne pas la réponse avec echo volontairement, car echo ne devrait pas
être utilisé dans des scripts. En gros, echo a besoin d'une option pour interpréter les séquences d'échappement, echo a aussi une option pour ne pas afficher de fin de ligne.
Mais tu devrais utiliser printf, qui se comporte pareil avec tout les shells et permet
de faire une différence entre le formatage et les données à afficher. Example :

printf '%s' 'Quel est votre nom ?'
read -r reponse
printf '%s %s\n' 'Votre nom est :' "$reponse"

Hors ligne

#3 11-07-2011 10:56:45

patrickm7
Membre
Inscription : 11-07-2011

Re : Problème echo sous debian

Merci mais le problème c'est que nous avons plein de shell qui utilisent le echo et donc j'en ai besoin.

Hors ligne

#4 11-07-2011 11:49:26

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Problème echo sous debian

Bon, je te donne la solution, mais il faut aussi que tu lises la page manuel :

 man echo


Deux solutions :

 echo -n "blabla"


ou si tu tiens vraiment à utiliser une séquence d'échappement :

 echo -e "blabla\c"

Dernière modification par enicar (11-07-2011 11:50:04)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#5 11-07-2011 11:56:22

patrickm7
Membre
Inscription : 11-07-2011

Re : Problème echo sous debian

merci mais c'est pour eviter de modifier tout nos shells que je ne veux pas utilise le echo -e
(sous redhat pas besoin du -e) !!!

Hors ligne

#6 11-07-2011 12:02:46

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Problème echo sous debian

Alors, peut être qu'il existe une option dans bash. Cette solution restera spécifique à bash.
De plus debian utilise /bin/dash par défaut en lieu et place de /bin/sh, qui est une version
allégée par rapport à bash. Il faudrait donc aussi supprimer dash...

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#7 11-07-2011 12:08:48

cthuluh
Membre
Distrib. : stable
Noyau : stable
(G)UI : ratpoison
Inscription : 17-08-2010

Re : Problème echo sous debian

Merci d'écouter ce qu'on a à dire.
Tous les shells posix sur toutes les distros GNU/Linux ont un printf qui se comporte
de manière cohérente. Comprendre par là, pas d'option nécessaire pour obtenir
un comportement portable et clair.

Notre job n'est pas de te dire comment jouer avec les spécificités des shells
d'autres distros comme Red Hat. Notre job c'est de te donner des fonctionnalités
utilisables sur Debian et des alternatives *portables* qui fonctionnent sur tous les OS.

Ton utilisation de \c est probablement la pire utilisation d'echo que j'ai jamais vu,
utilise printf, même si ça doit passer par la correction de plusieurs de tes scripts.
Ou ne viens pas te plaindre ensuite de ne pas observer un comportement cohérent.

Hors ligne

#8 11-07-2011 12:40:37

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Problème echo sous debian

Bon, je dois dire que je suis d'accord avec cthuluh en ce qui concerne l'utilisation des séquences d'échappement que tu fais avec echo, et aussi que le moyen le plus portable est
d'utiliser printf.

Mais, je vais être très conciliant, j'ai assez rapidement trouvé l'option à activer pour que
echo se comporte comme tu le désires. Il va falloir quand même que tu modifies les scripts.
Ajoutes :

shopt -s xpg_echo


au début de chacun de tes scripts.

Et si tu ne veux pas changer tous tes scripts il faudra que tu cherches une solution toi même
ou alors me payer (je suis au chômage) pour que je change tous vos scripts...

Bonne journée


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

Pied de page des forums