-
-
Notifications
You must be signed in to change notification settings - Fork 163
Diversity in Command Line Syntax
Here I'm picking the worst cases. My point is not that we have to handle them -- it's that the shared grammar shouldn't prevent you from handling these cases.
The long options have to appear BEFORE the short options.
Usage: bash [GNU long option] [option] ...
bash --posix -x --<TAB>
-- This should not complete any long options!
set +oeu pipefail
is equivalent to
set +o pipefail +e +u
(try it in bash)
When I type set +oeu <TAB>
-- I should complete pipefail
and not an arg.
find . -type f -<TAB>
-- what is valid in that case? How do you write a grammar for it?
It doesn't respect --
according to POSIX.
-strflag str
is allowed, but -boolflag 0
isn't allowed. Must be -boolflag=0
for negation, or -boolflag
/ -boolflag=1
when it's true.
python -c -s <TAB>
--
python -c x -s <TAB>
--
-s
is not a flag; it's an argument, because -c
terminates flag parsing.
zsh seems to get this right. (bash doesn't complete flags at all, so it doesn't apply.)