大文字と小文字を区別しないことをグローバルに (少なくともそのシェルでは) オンにせずに、特定のコマンドに大文字と小文字を区別しないように指定する方法はありますか?
私の特定のケースでは、電子メール アドレスのデータベースへのコマンド ライン アクセスを可能にする小さなアプリがあるので、次のように入力します。
db get email john smith
John Smith の電子メール アドレスを返します。そのため、アプリ内で主に補完を有効にすることができました: 設定
COMPREPLY=($(compgen -W "$(db --complete $COMP_CWORD "$COMP_WORDS[@]"}")" -- ${COMP_WORDS[COMP_CWORD]}))
タブ補完get
とemail
. ただし、次に入力j<tab>
すると拒否されます。これは、電子メールデータベースでは適切に大文字になっているためです。とにかくこれを完了するためにbashを取得したいと思います。(大文字を使用するJ
と機能します。)
それができない場合は、--complete
オプションで入力を一致させることで応答の大文字と小文字を変更することができますが、理想的には、コマンドラインは可能な限りデータベースと一致するはずです。
readlineを使用している場合、アプリ内でこれが機能していることに注意してください。問題と思われるのはbashとのインターフェースのみです。