you write like when word splitting no use double quotes
sure but as far as i understood:
key='$( faulty_command )'
unset -v assoc["$key"]
would still get expanded

i cant get friendly'ed to builtins being over keywords

much more to say but i cant, greets tho

On Wed, Mar 17, 2021 at 4:46 AM Robert Elz <k...@munnari.oz.au> wrote:

>     Date:        Tue, 16 Mar 2021 13:26:30 +0100
>     From:        Alex fxmbsw7 Ratchev <fxmb...@gmail.com>
>     Message-ID:  <CAALKErHuHduuMLBnhXzxuoEVqT-cjJeeVBV8f7WQO=
> p09ca...@mail.gmail.com>
>
>   | no idea about your internal rules of keyword and builtin but clearly
> its
>   | gotta parse it at most 1. level otherwise its big security fault isnt
> it
>
> No, it isn't.   No more than
>         cd /; rm -fr *
> is a "big security fault" (in the shell).   Users who do
> stupid things might be a big security fault, but it is not the
> shell's job to stop that (if you think you need that help,
> find some shell that still implements restricted mode, if there
> are any (does bash?) and use that, then you'll be fairly well
> protected - you also won't be able to do much).
>
>   | its a shell fuctionality keyword, unset, so ..
>
> Lots of things are what seems to be shell functionality, that
> changes nothing.   If you don't want word splitting, add quotes.
> Your responsibility.
>
> g...@wooledge.org said:
>   | I would not complain if unset became a shell keyword, and had a
> complete
>   | revamp of its behavior.
>
> I would.   keywords cannot be overridden by functions, and so should be
> used only where absolutely required (which means, really, that in order to
> work, they require a magic syntax, that the shell must implement).
> And yes '[[' being a keyword, is, IMO, a mistake.   unset requires
> no more than regular shell parsing, and should be left alone.
>
> kre
>
>
>

Reply via email to