[OE-core] [PATCH] Replace "echo -e" with "printf" to have the same behavior in dash or bash
Paul Eggleton
paul.eggleton at linux.intel.com
Thu Sep 20 09:13:24 UTC 2012
On Thursday 20 September 2012 11:44:39 Andrei Gherzan wrote:
> oe-core removed the prerequisite to have sh as bash. POSIX doesn't define
> any options and furthermore allows echo -e to be the default behavior.
> This means that in dash "echo -e" will actually print "-e" and interpret
> backslashes by default. We use instead "printf" builtin command with or
> without "\n" to simulate echo -e or echo -n.
I haven't looked over the whole patch, but I did notice a couple of issues -
printf does not behave exactly like echo in a couple of situations:
(a) if you supply no arguments printf will return an error whereas echo does
not, this will probably break situations where you have changed the script to
do 'printf > /some/file'. Since these statements are usually intended to create
or truncate the specified file, I wonder if we should just change these to do '>
/some/file' instead which works for dash and bash (and doesn't otherwise appear
to be a bashism).
(b) 'printf "\n"' will print just one newline, whereas echo -e "\n" prints
two. Not sure if this is significant but I think we would rather keep the
behaviour the same.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the Openembedded-core
mailing list