[CentOS] Bash completion thrown by quoted option args?

mark m.roth at 5-cent.us
Fri May 24 13:37:49 UTC 2019


isdtor wrote:
> wwp writes:
>> On Fri, 24 May 2019 09:33:55 +0100 isdtor <isdtor at gmail.com> wrote:
>>> Leroy Tennison writes:
>>>
>>>> I am going to take a really wild guess and say "Try replacing the
>>>> outermost quotes with single quotes or escape the double quotes
>>>> around the numeral 1".  Your second example has double quotes
>>>> within double quotes and I'm wondering if that's getting rendered
>>>> as "yum --debuglevel="      1      " install ..." (extra space
>>>> added for emphasis).
>>>
>>> The outermost quotes are not part of the command, they were only a
>>> means to set off the command typed from the surrounding text.
>>>
>>> Single quotes around the option arg don't work either.
>>>
>>
>> In that specific example (--debuglevel="1"), you don't need the quotes.
>>  But, if that's just an example and you really use command-line
>> arguments that need to be quoted, for instance because they contain
>> spaces, maybe you could just use \ to protect spaces like: # command "a
>> b" c would become: # command a\ b c (2 params)
>> which is different from: # command a b c (3 params)
>> just escaping the space to prevent bash from considering "a\ b" as two
>> words).
>>
>> Also, maybe it's bash completion for yum that is your problem, did you
>> try disabling yum-specific completion? That would let you still the
>> ability to use path completion.
>
> In my case, the argument being quoted (different option) is a "*". Your
> method of escaping instead of quoting works.
>
> I couldn't find anything yum-specific in bash-completion.
>
>
> [root at localhost ~]# rpm -ql bash-completion |grep yum
> [root at localhost ~]#
>
I really haven't been following this thread, but if it's about yum, it's
always been perfectly happy with
$ yum update package\*
with no quotes at all.

           mark



More information about the CentOS mailing list