compoptコマンドは、completeコマンドでの-oオプションで設定する補完のオプションを確認・変更することができます。
complete - 補完機能の設定を行う
completeコマンドは、bashの組み込みコマンドになります。シェルでは入力途中の文字に対してTABを入力すると入力補完機能が働きます。completeコマンドはこの入力補完機能をどのように表示するかを設定できます。
compoptコマンドをオプションなしで利用すると補完の設定がされている単語に対して、-oオプションでどのようなオプションがオンになっているかを確認できます。
オプションの設定は-oまたは+oオプションで、オプションのオンオフを設定できます。
compoptコマンドの利用例
compoptコマンドをcompleteコマンドで設定した補完の単語を引数にし、オプションなしで利用するとcompleteコマンドで設定できるすべての-oオプションの内容を確認することができます。
オプションの切り替えについては、-oオプションでオンに、+oオプションでオフになります。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 |
$complete complete echo $ $compopt echo compopt +o bashdefault +o default +o dirnames +o filenames +o nospace +o plusdirs echo $ $compopt -o default echo $complete complete -o default echo $compopt echo compopt +o bashdefault -o default +o dirnames +o filenames +o nospace +o plusdirs echo |
completeコマンドの-oオプションについて
completeコマンドの-oオプションで指定できるオプションについては以下のような表になります。
-oオプションで指定できるオプション
オプション | 意味 |
default | Readlineのデフォルトのファイル名の補完 |
bashdefault | 変数($で始まるテキスト)、ユーザ名(~で始まるテキスト)、 ホスト名(@で始まるテキスト)などの他のbashデフォルト補完 |
dirnames | ディレクトリ名の補完 |
filenames | -Fオプションでcompspecをファイル名の生成として処理 (ディレクトリ名に/を追加や末尾のスペースの抑制などが行われる) |
noquote | ファイル名ならばクォートしない |
nospace | 補完された単語の終わりにスペースを追加しない |
plusdirs | 補完リストにディレクトリ名が存在する場合、ディレクトリ名の処理を行う |