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
-b
, --builtin-command
--special-builtin --semi-special-builtin --regular-builtin
に同じ)
-c
, --command
--builtin-command --external-command --function
に同じ)
-d
, --directory
--executable-file
--external-command
-f
, --file
--finished-job
--function
--global-alias
-g
, --group
-h
, --hostname
-j
, --job
-k
, --keyword
--normal-alias
--regular-builtin
--running-job
--scalar-variable
--semi-special-builtin
--signal
--special-builtin
--stopped-job
-u
, --username
-v
, --variable
-d
(--directory
) オプションを指定せずに -f
(--file
) オプションを指定した場合、-S …
(--suffix=…
) オプションの指定の有無にかかわらず、ディレクトリ名を表す補完候補には接尾辞としてスラッシュが付き、候補の直後には空白が入りません。
ジョブ ID の補完は先頭の %
を除いた部分に対して行われるので、補完しようとしている単語が既に %
を含んでいる場合は %
を接頭辞として指定してください。
Complete コマンドのオペランドは、各オペランドがそれぞれ補完候補として扱われます。指定したオペランドのうち、現在補完しようとしている単語に合うものが補完候補となります。
候補が少なくとも一つ生成できた場合は、終了ステータスは 0 です。新たな候補が一つも生成できなかったときは、終了ステータスは 1 です。その他のエラーの場合は 2 以上の終了ステータスになります。
POSIX には complete コマンドに関する規定はありません。