Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #11319 > unrolled thread

Re: Enhancement: bash should have uniform escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`.

Started byChet Ramey <chet.ramey@case.edu>
First post2015-08-10 16:56 -0400
Last post2015-08-10 16:56 -0400
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Enhancement: bash should have uniform escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`. Chet Ramey <chet.ramey@case.edu> - 2015-08-10 16:56 -0400

#11319 — Re: Enhancement: bash should have uniform escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`.

FromChet Ramey <chet.ramey@case.edu>
Date2015-08-10 16:56 -0400
SubjectRe: Enhancement: bash should have uniform escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`.
Message-ID<mailman.8095.1439240228.904.bug-bash@gnu.org>
On 8/10/15 2:30 PM, Arthur200000 wrote:
> Bash Version: 4.3
> Patch Level: 30
> Release Status: release
> 
> Description:
> 	Bash has different escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`. Take a specific point, `printf` and `$'C_Style'` accepts octals not starting with 0, but `echo -e` doesn't. 
> 	This is causing quite a lot of confusion.

They are different because they are supposed to be different according
to the relevant standards.

echo -e and the xpg_echo shell option expand the escape sequences that
Posix specifies:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html#tag_20_37
with the addition of \e, \E, and \xHH.  Posix requires the leading 0.

printf expands the escape sequences that Posix specifies:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html#tag_20_94

(note that printf %b is supposed to behave like echo)

The $'...' string expansion behaves like ANSI-C, which just uses one to
three octal digits for octal numbers.  It adds support for \e and \E, as
well as \c.  There is a proposal to add this to the next version of Posix
which retains this behavior.

(And as for Apple's bash-3.2, they modified bash to behave as it does.
Bash-3.2 as distributed understands \e in the echo format string.)

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web