bashはワイルドカードを使用してカスタムタブを完成させます。

bashはワイルドカードを使用してカスタムタブを完成させます。

myscript特定の拡張子(たとえば)を持つ.txtファイルに対してオートコンプリートパラメータを有効にしたいスクリプト(と呼びます)があります。単に次のようにすることができます。

complete -f -X '!*.txt' myscript

a次に、、、、bファイルa.txtがある場合はb.txtab.txtmyscript」と入力し、Tabキーを2回押すと次のようになります。

$ myscript
a.txt  ab.txt  b.txt

私が望むのは、ワイルドカードをさらにフィルタリングできるようにすることです。たとえば、「myscript * b *」と入力してタブキーを2回押すと、次のことを確認したいと思います。

$ myscript *b*
ab.txt  b.txt

残念ながら、これはオートコンプリート機能を提供しません。カスタムオートコンプリートを削除または-o bashdefaultに渡すと、complete次のようになります。

$ myscript *b*
ab.txt  b  b.txt

Enterを押すと、b結果を表示したりスクリプトに渡したりしたくありません。この問題を解決する方法はありますか?

関連情報