bash完了関数_known_hosts_realに ":"を含むプロトコルプレフィックスを指定する方法

bash完了関数_known_hosts_realに

「proto://host」形式の URL に bash-completion を使用しようとしています。 「:」がなければ、予想される動作を見ることができますが、「:」がある場合、URLに「エラー」が発生します。

Bashを完成させるためのホスト名関数がありますが、ここに私が使用したいパラメータが_known_hosts_realあります。-p PREFIX

「無効な」動作を再現する方法:

システムに「既知の」ホストが少なくとも1つ必要です。

例えばecho "gdns.google 8.8.8.8" >> /etc/hosts

機能の例を表示するには、次のコマンドを実行します。

$ unset COMPREPLY 
$ _known_hosts_real -p 'http//' -- "gdn"
$ echo $COMPREPLY 
http//gdns.google

動作しない例:

$ unset COMPREPLY 
$ _known_hosts_real -p 'http://' -- "gdn"
$ echo $COMPREPLY 
//gdns.google

唯一の違いは、「http://」にコロンが追加されることです。ここでの問題は、プレフィックスにプロトコル指定子とコロンがないことです。これが予想される動作ですか?

ベストアンサー1

これは、コロンで終わるプレフィックスを削除する予想さ_known_hosts_realれる動作です。既知のホストファイルで使用するように設計されているので、おそらく 。__ltrim_colon_completions_known_hosts_realsshcompgen -A hostname

おすすめ記事