Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > gnu.bash.bug > #16757
| From | Eric Blake <eblake@redhat.com> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: echo builtin doesn't handle end-of-options flag |
| Date | 2020-08-16 11:21 -0500 |
| Organization | Red Hat, Inc. |
| Message-ID | <mailman.2305.1597594895.2739.bug-bash@gnu.org> (permalink) |
| References | <F122E6E9-6067-45EF-8D18-2B1EBF0D5917@codegnome.org> <737d2184-8b59-0eee-4c56-41f7a67d8f88@redhat.com> |
On 8/16/20 10:47 AM, Todd A. Jacobs wrote: > Description: > The echo builtin accepts options, but does not seem to handle > `--` correctly as the end of options. The correct behavior for echo is described here: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html "The echo utility shall not recognize the "--" argument in the manner specified by Guideline 10 of XBD Utility Syntax Guidelines; "--" shall be recognized as a string operand." > The expected behavior > would be for -- to be removed, and any following flag-like > substrings printed as-is. Your expectations are wrong, they contradict what POSIX says. > > Repeat-By: > echo "-n" # "" but expecting "-n" POSIX says this one is implementation-defined; so whether -n is treated as an option or as a string to echo has to be documented by the implementation (bash documents treating it as an option). > echo -- -n foo # -- -n foo POSIX says this has to output '-- -n foo' and a newline. -n wasn't first, so you no longer have the implementation-defined behavior, but well-defined. > echo -- "-n foo" # -- -n foo Also well-defined. I see nothing in your report about bash disobeying POSIX, but rather confusion on your part about what POSIX actually requires. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
Back to gnu.bash.bug | Previous | Next | Find similar
Re: echo builtin doesn't handle end-of-options flag Eric Blake <eblake@redhat.com> - 2020-08-16 11:21 -0500
csiph-web