In the last episode (Jun 05), Tim Daneliuk said:
> Given this script:
> #!/bin/sh
> 
> foo=""
> while read line
> do
>    foo="$foo -e"
> done
> echo $foo
> 
> Say I respond 3 times, I'd expect to see:
> 
> -e -e -e
> 
> Instead, I get:
> 
> -e -e
> 
> Linux appears to do the right thing here, so this seems like it
> is a bug ... or am I missing something?

echo takes a -e flag, so it eats the first one.  Bash does the same thing,
so any Linux that uses bash as /bin/sh will also.  You must be testing on a
Linux that uses something else as /bin/sh.  Better to use the printf command
if you are worried about compatibility.

     echo [-e | -n] [string ...]
             Print a space-separated list of the arguments to the standard
             output and append a newline character.

             -n      Suppress the output of the trailing newline.

             -e      Process C-style backslash escape sequences.  The echo
                     command understands the following character escapes:


-- 
        Dan Nelson
        dnel...@allantgroup.com
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to