「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_real
ssh
compgen -A hostname