Command 組込みコマンドはコマンドを実行します。またコマンドの種類を特定します。
command [-befp] コマンド [引数…]
command -vV [-abefkp] コマンド…
-v (--identify) オプションならびに -V (--verbose-identify) オプションを付けずに実行すると、command コマンドは与えられたコマンドを与えられた引数で実行します。コマンドの実行の仕方は単純コマンドの実行の最後のステップに準じますが、コマンドの検索では外部コマンド・組込みコマンド・関数の内オプションで指定したものしか検索しません。またコマンドが特殊組込みコマンドの場合、コマンドのオプションやオペランドの使い方が間違っていたりリダイレクトエラーや代入エラーが起きたりしてもシェルは終了しません。
-v (--identify) オプションまたは -V (--verbose-identify) オプションを付けて実行すると、command コマンドは与えられたコマンドの種類とパスを特定しそれを標準出力に出力します。コマンドはエイリアスや関数であっても構いません。
-v (--identify) オプションを付けて実行したときの出力は以下のようになります。
-a, --alias
-b, --builtin-command
-e, --external-command
-f, --function
-k, --keyword
-p, --default-path
PATH 変数の代わりに、標準のコマンドをすべて含むようなシステム固有のデフォルトパスを用いて外部コマンドを検索します。
-v, --identify
-V, --verbose-identify
-a (--alias) オプションと -k (--keyword) オプションは -v (--identify) オプションまたは -V (--verbose-identify) オプションと一緒にしか使えません。
-a (--alias), -b (--builtin-command), -e (--external-command), -f (--function), -k (--keyword) オプションのどれも指定しなかった場合は -be (-v (--identify), -V (--verbose-identify) オプションを指定した場合) または (-v (--identify), -V (--verbose-identify) オプションを指定していない場合) を指定したものとみなします。
-v (--identify) オプションならびに -V (--verbose-identify) オプションを付けずに実行した場合、command コマンドの終了ステータスは実行したコマンドの終了ステータスです。実行しようとしたコマンドが見つからなかった場合、終了ステータスは 127 です。コマンドが見つかったが実行できなかった場合、終了ステータスは 126 です。
-v (--identify) オプションまたは -V (--verbose-identify) オプションを付けて実行した場合、終了ステータスは原則として 0 です。ただしコマンドが見つからなかった場合やその他エラーが発生したときは非 0 です。
Command コマンドは準特殊組込みコマンドです。
POSIX に規定のあるオプションは -p, -v, -V だけです。これ以外のオプションは POSIX 準拠モードでは使えません。また POSIX 準拠モードでは -v または -V オプションを使用するときコマンドはちょうど一つしか指定できません。
POSIX は -v オプションと -V オプションを同時に指定することを認めていません。Yash ではこれら二つのオプションを両方指定すると最後に指定したものが有効になります。