[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: echo builtin doesn't handle end-of-options flag

From: Eli Schwartz
Subject: Re: echo builtin doesn't handle end-of-options flag
Date: Sun, 16 Aug 2020 12:26:06 -0400

On 8/16/20 12:21 PM, Eric Blake wrote:
> 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).


"Implementations shall not support any options."

>>          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.

bash does disobey POSIX, but not in the manner which the report specifies.

Eli Schwartz
Arch Linux Bug Wrangler and Trusted User

Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]