bash完了:特定のパラメータのホストリストを完成させるには?

bash完了:特定のパラメータのホストリストを完成させるには?

私のプログラムは次の形式を使用できます。

<command_name> <arguments> <options> -hosts <host1> <host2> ... <hostn> (<more_arguments>) ...

以下に基づいてbashオートコンプリートを設定しようとしています。Debian 管理この記事では、次のようにホストの完了を完了しました。

(...)
case "${prev}" in
    -hosts)
        _known_hosts_real -a "$cur"
        return 0
        ;;
    (...)
(...)

もちろん、-hostsbashは作成後に単一のホストの名前を完成させることができますが、複数のホストの名前は完成できません。他のパラメータを処理するので、ホストを完了せずにこのハッキングを実装する素晴らしい方法はありますか-hosts

ベストアンサー1

大文字と小文字を無視すると、前の単語の1つであることを(<more_arguments>)確認できます。-hosts

(...)
for ((i=1;i<COMP_CWORD;i++)); do 
  if [ "-hosts" == "${COMP_WORDS[i]}" ]; then 
    _known_hosts_real -a "$cur" 
    return 0 
  fi 
done 
case "${prev}" in 

おすすめ記事