Possible /bin/sh Bug?
Robert Bonomi
bonomi at mail.r-bonomi.com
Tue Jun 5 17:37:42 UTC 2012
> From: Tim Daneliuk <tundra at tundraware.com>
>
> 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?
Yup. there are -multiple-, incompatible, standards for 'echo'.
a SYS-V derived echo will behve diferently than UCB based one.
varous shell-program 'built-in' implementtions may have yet different
behavior.
Recommendation -- use 'print' instead of 'echo', it is much more predictble
in differnt environments.
ALTERNATIVE: replace the last line of the script with:
echo -- $foo
More information about the freebsd-questions
mailing list