2016-04-03 3 views
1

Возможно ли сделать интерактивные предложения на основе ввода пользователем?bash script - генерировать предложения, основанные на пользовательском вводе

Пример:

$ my_script --check-hosts prod<TAB> 
    production1.company.com production-db1.company.com 
    production2.company.com 
    production3.company.com 

В разных случаях следует запрашивать DNS-записи, Grep файлов и т.д.
Я знаю о bash_completion но можно сгенерировать этот список на лету?

+1

при установке 'COMPREPLY' вы можете получить полный список доменных имен на лету, используя другой собственный скрипт – ritesht93

ответ

0

Вам нужно будет создать новый файл здесь:

/etc/bash_completion.d/myfunction 

Update любые ссылки на MYFUNCTION в первой и последней строке блока кода ниже. Вы также можете обновить переменную flags с любыми запрошенными автозаполнениями условиями. --help и --version в настоящее время установлены.

_myfunction() 
{ 
    local cur prev flags 
    COMPREPLY=() 
    cur="${COMP_WORDS[COMP_CWORD]}" 
    prev="${COMP_WORDS[COMP_CWORD-1]}" 
    flags="--help --version" 

    if [[ ${cur} == -* ]] ; then 
     COMPREPLY=($(compgen -W "${flags}" -- ${cur})) 
     return 0 
    fi 
} 
complete -F _myfunction myfunction 

После того, как вы создали этот файл, перезагрузите bash.

bash 

Тогда автозаполнение должно работать.

$ myfunction -- 
--help  --version 
Смежные вопросы