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

Re: [RFC] war on echo in scripts

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jul 9, 2010, 14:30 UTC
Message-ID
<20100709143011.GA1980@burratino>
In-Reply-To
<7vocehmfe9.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
Show 6 quoted lines
>> +echo() {
>> +	printf '%s\n' "$*"
>> +}
>
> As long as we don't have "echo -n" and "echo -e", this should
> work, but...
Yes, it’s ugly.  And it could make for surprises in user scripts.

"echo -n" has been disallowed in core git since v0.99.9m^2~52 (Use printf rather than echo -n, 2005-12-06). Some echos seem to expect '\c' instead.

"echo -e" is not allowed either, to support the Almquist shell and its descendents; see v1.2.0~4 (avoid echo -e, there are systems where it does not work, 2006-02-12).

Maybe we can avoid impacting user scripts by making this opt-in? i.e., something like

 if test -n "$GIT_FIX_ECHO"
 then
	echo() {
		printf '%s\n' "$*"
	}
 fi
I am still not sure about the portability of overriding builtins.
Previous: Junio C HamanoNext: Junio C Hamano
Message 13 of 16 in “rebase -i: use 'read -r' to avoid backslash acting as an escape character”
  1. rebase -i: use 'read -r' to avoid backslash acting as an escape characterMiklos Vajna, Jul 6, 2010
  2. Junio C HamanoJul 7, 2010
  3. Miklos VajnaJul 7, 2010
  4. Santi BéjarJul 7, 2010
  5. Miklos VajnaJul 7, 2010
  6. Junio C HamanoJul 8, 2010
  7. Miklos VajnaJul 8, 2010
  8. [RFC] war on echo in scriptsJonathan Nieder, Jul 8, 2010
  9. Andreas SchwabJul 8, 2010
  10. Jonathan NiederJul 9, 2010
  11. Sverre RabbelierJul 9, 2010
  12. Junio C HamanoJul 9, 2010
  13. Jonathan NiederJul 9, 2010
  14. Junio C HamanoJul 9, 2010
  15. Ævar Arnfjörð BjarmasonJul 9, 2010
  16. Jonathan NiederJul 9, 2010

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.