echo is defunct by definition.

The preferred way is

printf %s\\n "data"

which is much more stable against such "attacks"!

Also it is far more stable to be used for multiline output:

printf %s\\n "line 1" line\ 2 'line 3' "line 5 and
line 6"

and no, it shouldn't. echo should not be used but must not be changed.

On 14/08/2019 14:01, Harald Dunkel wrote:
> Hi folks,
>
> I just learned by accident that
>
>       var="-n"
>       /bin/echo -- $var
>
> actually prints
>
>       -- -n
>
> Shouldn't it be just
>
>       -n
> ?
>
> Other tools in coreutils use '--' to indicate "stop parsing for
> command line flags", e.g. touch, ls and rm:
>
>       % /bin/touch -- -l
>       % /bin/ls -- -l
>       -l
>       % /bin/rm -- -l
>       % /bin/rm -- -l
>       /bin/rm: cannot remove '-l': No such file or directory
>
> Some common style would be nice here.
>
>
> Regards
> Harri
>

Reply via email to