
エイリアスはどのように自動補完されますか?
答え1
コマンドによって異なります。
- 誰かオプションを含む可能な引数補完を生成する関数を書くこともできます。
/etc/bash_completion.d/*
一部のコマンドの機能は、(または一部のシステムでは異なる場所で)見つけることができます。この機能は以下に登録されています。complete
組み込み(たとえば、コマンドを押すとcomplete -F _find find
bashにこの関数を呼び出すように指示します。)彼らはそれを使う_find
Tabfind
compgen
組み込み機能はbashに「ここにできるだけ完成しています」と伝えます。 - 一部のコマンドでは、bashは引数を使用してコマンドを呼び出して
--help
出力を解析します。これらのコマンドは次に登録できます。complete
たとえばcomplete -F _longopt ls
。_longopt
実際には、固定リストを使用するのではなく、コマンドの出力を解析する完了生成関数です。 (可能な補完を生成するためにコマンドの出力を解析する、より特殊な他の完成関数があります。/etc/bash_completion.d/*
例を参照してください。) - エイリアスのようなものの場合、補完機能はbashの内部テーブルでそれを見つけます。これ
complete
-A
エイリアスなどの対応するオプションが組み込まれています。
答え2
ファイルを見てください
/etc/bash_completion
そしてディレクトリのファイルを見てください。
/etc/bash_completion.d
あなたは知っているでしょう。
答え3
Bash CompleteのサポートはDebianとUbuntuで利用可能です。バッシュ完成パッケージ。また、通常、次のコメントを削除する/etc/bash.bashrc
か、.bashrc
bash 完成ファイルのソースコードをインポートする必要があります。次の内容のソースは次のとおりです/etc/bash.bashrc
。
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
この仕事のために。私は通常両方ともコメントを外します。 Debian で対話型/ログインシェルを処理するのは少し混乱しています。
デフォルトでは、調達が有効になっている可能性がありますが、同様の説明が他の展開にも適用される可能性があります。