Complete 組込みコマンドは​コマンドライン補完において補完候補を生成します。この組込みコマンドは補完関数の実行中にだけ使えます。

構文

  • complete [-A パターン] [-R パターン] [-T] [-P 接頭辞] [-S 接尾辞] [-abcdfghjkuv] [[-O] [-D 説明] 単語…]

説明

補完関数の中でこの組込みコマンドを実行すると、complete コマンドは指定した引数に従って補完候補を生成します。どのオプション・オペランドで候補を生成するにせよ、実際に生成される候補は現在補完しようとしている (コマンドライン上に途中まで入力された) 単語に一致するものに限られます。

オプション

-A パターン
--accept=パターン

このオプションを指定すると、指定したパターンにマッチする候補だけを生成します。このオプションは複数回指定できます (指定した全てのパターンにマッチする候補だけを生成します)。

-D 説明
--description=説明

このオプションを指定すると、このオプションで指定した説明が補完の際に候補の説明として表示されます。

-O
--option

生成する候補をコマンドのオプションとみなすようにします。候補を画面上に一覧表示する際に自動的に先頭にハイフンを付加します。

-P 接頭辞
--prefix=接頭辞

このオプションで指定する接頭辞は現在補完しようとしている単語の接頭辞になっていなければなりません。このオプションを指定すると、候補生成の際にこのオプションで指定した接頭辞を無視してマッチングを行います。例えば補完しようとしている単語が file:///home/user/docume であり、この URL をファイル名として補完したいとしましょう。この場合は、complete -P file:// -f とすると URL から file:// を除いた残りの /home/user/docume の部分に対してファイル名としての補完候補が生成されます。

-R パターン
--reject=パターン

このオプションを指定すると、指定したパターンにマッチする候補を生成しません。このオプションは複数回指定できます (指定したパターンの少なくとも一つにマッチする候補を全て除外します)。

-S 接尾辞
--suffix=接尾辞

生成した各候補の末尾に接尾辞を付加します。

-T
--no-termination

通常は、補完が終わった後に次の単語をすぐ入力できるように、補完した単語の直後に空白を自動的に挿入しますが、このオプションを指定したときは空白を挿入しません。

補完方式設定のためのオプション

-a
--alias

エイリアス (--normal-alias --global-alias に同じ)

--array-variable

配列

--bindkey

Bindkey コマンドで利用可能な​行編集コマンド

-b
--builtin-command

組込みコマンド (--special-builtin --mandatory-builtin --elective-builtin --extension-builtin --substitutive-builtin に同じ)

-c
--command

コマンド (--builtin-command --external-command --function に同じ)

-d
--directory

ディレクトリ

--dirstack-index

ディレクトリスタックのインデックス

--elective-builtin

任意組込みコマンド

--executable-file

実行可能ファイル

--extension-builtin

拡張組込みコマンド

--external-command

外部コマンド

-f
--file

ファイル (ディレクトリ含む)

--finished-job

終了したジョブの​ジョブ ID

--function

関数

--global-alias

グローバル​エイリアス

-g
--group

(ファイルのパーミッションなどにおける) グループ

-h
--hostname

ホスト名

-j
--job

ジョブ ID

-k
--keyword

シェルの​予約語

--mandatory-builtin

必須組込みコマンド

--normal-alias

通常の (グローバルでない) エイリアス

--regular-builtin

後方互換性のために残されている古いオプション。 --extension-builtin --substitutive-builtin に同じ。

--running-job

実行中のジョブの​ジョブ ID

--scalar-variable

(配列を除いた通常の) 変数

--semi-special-builtin

後方互換性のために残されている古いオプション。 --mandatory-builtin --elective-builtin に同じ。

--signal

シグナル

--special-builtin

特殊​組込みコマンド

--stopped-job

停止中のジョブの​ジョブ ID

--substitutive-builtin

代替組込みコマンド

-u
--username

ユーザのログイン名

-v
--variable

変数

-d (--directory) オプションを指定せずに -f (--file) オプションを指定した場合、-S … (--suffix=…) オプションの指定の有無にかかわらず、ディレクトリ名を表す補完候補には接尾辞としてスラッシュが付き、候補の直後には空白が入りません (-S / -T を指定したときと同じ動作)。

ジョブ ID の補完は先頭の % を除いた部分に対して行われるので、補完しようとしている単語が既に % を含んでいる場合は % を接頭辞として指定してください。

オペランド

Complete コマンドのオペランドは、各オペランドがそれぞれ補完候補として扱われます。指定したオペランドのうち、現在補完しようとしている単語に合うものが補完候補となります。

終了ステータス

候補が少なくとも一つ生成できた場合は、終了ステータスは 0 です。新たな候補が一つも生成できなかったときは、終了ステータスは 1 です。その他のエラーの場合は 2 以上の終了ステータスになります。

補足

Complete コマンドは​任意組込みコマンドです。 POSIX では complete コマンドの動作は規定されていません。 POSIX 準拠モードが有効な場合でも、 補完関数の実行時には POSIX 準拠モードが一時的に無効になるため、complete コマンドを使用できます。