Never heard of that syntax but it falls short on several fronts like unnamed or not-needed-to-be-named parameters. It's very easy to be confused by existence or lack of spaces in "help= cmd" too; am I assigning a variable or running a command? Not to mention that if you have an environment variable that clashes with an argument, it can have catastrophic results. I'm glad that it hasn't caught on.

On a similar note, I remember CP/M 3.0 had square bracket syntax for options like `DIR [WIDE] [ATTR=ANY]`. I think that one was probably the most intuitive one, although may not be the easiest to type. But DOS had already caught on with forward slash parameter prefixes which it also got from pre-bracket CP/M.

I think you may misunderstand - the idea is "in addition to", not "instead of" the usual syntax, `a=123 b=456 mycmd arg1 arg2 arg3 ..`, but it happens to provide a way to give "long names".

Also, it did catch on in the sense of being available, if not well known as much as POSIX (BSDs) /Bash (Linux) / Zsh (Mac OSX) caught on.

The spacing is as confusing or not as any Unix shell quoting, as in `a="1 2 3" b="4 5 6" mycmd "arg 1" "arg 2"`.

FWIW, I agree `help= cmd` looks a bit funny, though a user could probably also say, in the interests of clarity, `help=1 cmd` or `help='' cmd` if the convention was to ignore the value of `$help` and just go by its existence.

cmd [key1] arg1 [key2=val2] arg2 is interesting. Thanks for that!