echo ne prend pas les options dans un script

Daniel Caillibaud ml.dcailli at free.fr
Mon Nov 13 16:52:12 CET 2006


Bonjour,

Me voici confronté à un truc qui me dépasse un peu :
echo comprend bien les options en ligne de commande mais plus dans un script !

Il y a un paramètre qqpart qui donne un comportement différent au bash en mode interactif ?


En ligne de commande :
for i in $(seq 1 5); do echo -en '.'; sleep 1; done;
m'affiche bien sur la même ligne un point par seconde et sort.

mais si je met ça dans un script et que je lance le script, ça donne :
-en .
-en .
-en .
-en .
-en .

Et tout aussi curieux:
$sh -c "for i in $(seq 1 5); do echo -en '.'; sleep 1; done;"
sh: Syntax error: word unexpected (expecting "do")

OK, le sous shell marche pas dans ces conditions, on fait alors
$sh -c "for i in 1 2 3 4 5; do echo -en '.'; sleep 1; done;"
-en .
-en .
-en .
-en .
-en .

C'est pas un pb d'espace insécable (j'ai fait un copier/coller), je vois vraiment pas...
J'ai essayé echo -e -n "." mais ça change rien.

Une idée ?
Mon shell est malade ? (GNU bash, version 3.1.17(1)-release - i486-pc-linux-gnu)

Daniel



More information about the Shell mailing list