くれなゐの雑記

例を上げて 自分で手を動かして学習できる入門記事を多めに書いています

[bash-completion] bashで自作の.shや実行ファイルの補完の候補の拡張子を絞り込む

以前, kurenaif.hatenablog.com この記事でmakeplt_epsを制作したのですが, このコマンドの拡張子は.plt限定なのに, Tabを二回押した時に出る補完の候補にそれ以外の拡張子のものがついてくるのは少々ウザイです この候補を, .pltのものだけに絞り込む ということをしたいと思います.

Ubuntuでは、bash-completionがデフォルトで入っていた気がしますが、なかったら突っ込んでおきましょう

sudo apt-get install bash-completion

bash-completionが入っていたら、completeコマンドが使えるようになります。

complete

なんかでたら多分OKです。

実は, 結構簡単に出来て, 次の一行でやりたいことができるようになります.

complete -G '*.@(plt)' makeplt_eps

コマンドの意味は自分でググってください 他にもいっぱいあります. makeplt_epsは自分で作ったコマンドです.

pltの部分を他の拡張子にすれば, 自分の候補に出したいコマンドにすることができます.

最後に、これをbashの起動時に呼びだせば良くて, ubuntuでは, /etc/bash_completion.dにいろいろ入っていたので、そこにさっき描いたやつを保存して、ぶっこんでおきました。

これで起動時に毎回completeが呼ばれて, 自分の作ったコマンドの補完の候補を拡張子で絞り込むことができました.