Command 組込みコマンド

Command 組込みコマンドはコマンドを実行します。またコマンドの種類を特定します。

構文

説明

-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 ではこれら二つのオプションを両方指定すると最後に指定したものが有効になります。