備忘録としてメモ。
🍰結論
自作またはダウンロードした補完スクリプトは次のうちどちらかのディレクトリに配置すればいい。
- ユーザーごとの適用
-
~/.local/share/bash-completion/completions/ - システム全体で適用
-
/usr/local/share/bash-completion/completions/
|
パッケージの場合
パッケージで補完スクリプトを管理する場合は
|
|
ファイル名について 補完スクリプトのファイル名は <コマンド名> もしくは <コマンド名>.bash とする。
|
🔍ソースを確認してみた
bash_completion (v2.11) のソースを確認してみると、bash_completion ファイルの __load_completion() 関数で補完スクリプトファイルを読み込んでいるっぽい。
上記の関数内において補完スクリプトが探索されるディレクトリは次の2種類。
${BASH_COMPLETION_USER_DIR}/completions-
デフォルト値は
$HOME/.local/share/bash-completion/completionsとなる。変数のデフォルト値について補足$BASH_COMPLETION_USER_DIR→ $XDG_DATA_HOME/bash-completion,
$XDG_DATA_HOME→ $HOME/.local/share
${XDG_DATA_DIRS}/bash-completion/completions-
デフォルト値は
-
/usr/local/share/bash-completion/completions -
/usr/share/bash-completion/completions
の2つのディレクトリ。
変数のデフォルト値について補足$XDG_DATA_DIRS→ /usr/local/share:/usr/share
それぞれ for 文で登録される。 -
以上より、上記ディレクトリのいずれかに補完スクリプトを配置すれば読み込まれる。