git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUGS] test failure in t4014-format-patch.sh with master

From
Björn Steinbrink <b.steinbrink@gmx.de>
Date
Apr 17, 2008, 16:03 UTC
Message-ID
<20080417160327.GA13462@atjola.homenet>
In-Reply-To
<alpine.LFD.1.00.0804170841270.2879@woody.linux-foundation.org>
On 2008.04.17 08:44:07 -0700, Linus Torvalds wrote:
Show 22 quoted lines
> 
> 
> On Thu, 17 Apr 2008, Björn Steinbrink wrote:
> > 
> > Debian has its own dash which is supposed to be a lightweight
> > alternative to bash and "for checking POSIX compliance of scripts"
> > (quote from the packages description). I don't happen to know off-hand
> > whether POSIX says that echo should default to -e, but dash seems to do
> > that:
> > 
> > $ dash
> > $ a="hello\nhi"
> > $ echo $a
> > hello
> > hi
> 
> Ahh. So that "echo" should just be replaced with a 'printf "%s\n"' 
> instead? 
> 
> We have a _lot_ of "echo"s though. I suspect the only ones we'd ever catch 
> are the ones explicitly tested for. I suspect that the dash echo is just 
> broken.

Wow, seems that "echo" in itself is "broken". According to POSIX[1] backslashes induce implementation defined behaviour, and there seem to be two historic versions of echo, one that knows about -n and one that interprets escape sequences. So echo is totally non-portable unless you avoid -n as well as backslashes. Ouch.

The POSIX docs, as well as random Google results, indeed recommend to use printf instead. But that switch seems painful as well...

Björn
[1] http://www.opengroup.org/onlinepubs/009695399/utilities/echo.html
Previous: Linus TorvaldsNext: Jeff King
Message 5 of 12 in “[BUGS] test failure in t4014-format-patch.sh with master”
  1. Remi VanicatApr 17, 2008
  2. Linus TorvaldsApr 17, 2008
  3. Björn SteinbrinkApr 17, 2008
  4. Linus TorvaldsApr 17, 2008
  5. Björn SteinbrinkApr 17, 2008
  6. Jeff KingApr 17, 2008
  7. Jeff KingApr 17, 2008
  8. Rémi VanicatApr 17, 2008
  9. Junio C HamanoApr 18, 2008
  10. Linus TorvaldsApr 18, 2008
  11. Rémi VanicatApr 18, 2008
  12. Junio C HamanoApr 19, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.