Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11319
| From | Chet Ramey <chet.ramey@case.edu> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: Enhancement: bash should have uniform escape syntaxes for `echo -e`, `printf` and `$'ANSI_C_style_escape'`. |
| Date | 2015-08-10 16:56 -0400 |
| Message-ID | <mailman.8095.1439240228.904.bug-bash@gnu.org> (permalink) |
| References | <523431b6.2c9.14f18e12b67.Coremail.arthur200126@163.com> |
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/
Back to gnu.bash.bug | Previous | Next | Find similar
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
csiph-web