Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8996791
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T23:48:07+00:00 2026-06-15T23:48:07+00:00

In order to get easy bash completion for my scripts’ command line switches, I

  • 0

In order to get easy bash completion for my scripts’ command line switches, I have been exploring the _parse_help function in /etc/bash_completion (debian sid, bash v4.2-1, bash-completion v1:1.99-3).

My script generates a help message in what I believe to be standard GNU format:

MYSCRIPT [OPTIONS]

Usage:
  -h, --help     Show this help message
  -o, --option   Some option

I then activate completion via complete -F _parse_help ./myscript.

Unfortunately this does not give the desired result. Upon first tab ./myscript <TAB> (note, just a single keypress) an unformatted list appears containing –help and –option, not the shortened versions. Worse, completion of either option fails. In fact, just typing a dash causes _parse_help to completely stop generating output.

The whole thing feels very much broken, and I cannot find much reference of it online. Is this function perhaps considered obsolete? Is there another standard method of command line completion based on parsing –help output?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T23:48:08+00:00Added an answer on June 15, 2026 at 11:48 pm

    According to the bash reference manual the -F function expects to read the word list from a variable COMPREPLY

    It would appear that _parse_help does not set this required variable and would therefor not be suited as a function for complete -F. The output is obviously echo’d as is evident from executing the function.

    $ _parse_help ./myscript 
    -h
    --help
    -o
    --option
    

    @gertjan What you were attempting can be accomplished using the -W wordlist option instead.

    $ complete -W "$(_parse_help ./myscript)" ./myscript 
    $ ./myscript -
    --help    --option  -h        -o
    $ ./myscript --
    --help    --option
    $ ./myscript --help
    

    Completion works as expected and --h will complete --help or where there were multiple arguments like with “–” it will only list the appropriate options.

    If we were trying to use a function however it is not sufficient alone to only set COMPREPLY as you will see from the next example.

    NOTE: COMPREPLY is a bash array and requires the brackets () when set

    $ function _myscript () { 
    >     COMPREPLY=($(_parse_help ./myscript))
    > }
    $ complete -F _myscript ./myscript 
    $ ./myscript -
    --help    --option  -h        -o
    $ ./myscript --
    --help    --option  -h        -o
    $ ./myscript --help
    --help    --option  -h        -o  
    

    As you can see, even though the options are displayed, complete now expects us to do the filtering. We can accomplish this with compgen but first we need to determine what the current argument is to filter against. The function _get_comp_words_by_ref can help with this by populating the $cur variable, as per our final example.

    The complete implementation using a function with _parse_help for bash completion.

    $ function _myscript () {
    >     _get_comp_words_by_ref cur
    >     COMPREPLY=($(compgen -W "$(_parse_help ./myscript)" -- "$cur"))
    > }
    $ complete -F _myscript ./myscript 
    $ ./myscript - 
    --help    --option  -h        -o
    $ ./myscript --
    --help    --option
    $ ./myscript --help
    

    nJoy!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

OK I have 4 dynamic ips, in order to get those IP's I need
I have installed Easy Nivo Slider plugin for WordPress in order to show a
In order to get my setup a bit closer to one click deployment, I
In order to get better SEO and cleaner URLs, I tend to export certain
In order to get the next element in the list one just needs to
I'm attempting to get order data from a Yahoo store. I'm using the docs
What exactly needs to happen in order to get detailed SQL logs out of
I am using saxparser in order to get xml tag contents from file. All
How to fix this regex in order to get the mentioned outcome ? regex:
I'm using System.Xml in order to get data from xml data: string test =

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.