On Sun, 29 Jan 2023 at 14:29, Jach Feng <jf...@ms4.hinet.net> wrote:
> Thank you for detail explanation of the role the shell is involved in this 
> problem. I'm very appreciated!
>
> It seems that a CLI app may become very complex when dealing with different 
> kind of shell, and may not be possible to solve its problem. But the good 
> thing in my app is that I need only to handle math equation:-)
>
> > So why so much objection to explaining the need for "--"?
> Because of using " to enclose a space separated string is a common 
> convention, and adding a "--" is not:-)

Double hyphen is incredibly common.

On most Unix shells, double quotes are just one way of marking that a
space should be included in an argument rather than separating (others
include single quotes, escaping the space with a backslash, and
changing the field separator). Of course, everything is conventions,
not requirements, but it's generally better to let the person's shell
define the argument splitting; that way, if your script is called from
another process, it's dead easy to control the splitting yourself
(just pass an array/list of arguments to the subprocess spawner).

Maybe you come from Windows, where there are fewer conventions and
less shell parsing, but argparse follows Unix conventions, so if you
don't want Unix conventions, don't use argparse. Just read sys.argv
directly.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to