2016-04-03 19 views
1

ユーザの入力に基づいて対話型の提案を行うことは可能ですか?bashスクリプト - ユーザ入力に基づいて提案を生成する

例:別のケースでは

$ 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

:すべての参照は、以下のコードブロックの最初と最後の行の中にMyFunctionをする

/etc/bash_completion.d/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 
関連する問題