command コマンド
目的
簡単なコマンドを実行します。
構文
command [ -p ] CommandName [ Argument ... ]
説明
command コマンドは、指定されたコマンドと引数をコマンドとしてシェルに処理させ、シェル関数の検索を抑制します。
通常、コマンドの前に / (スラッシュ) (特定のパスを示す) が付いていない場合は、シェルは、以下のカテゴリーを検索してコマンドの位置を捜し出します。
- 特殊組み込みシェル
- シェル関数
- 正規組み込みシェル
- PATH 環境変数
例えば、正規の組み込み関数と同じ名前の関数があれば、システムはその関数を使用します。command コマンドを使用すると、関数と同じ名前のコマンドを呼び出して簡単なコマンドにすることができます。
command -v コマンドと command -V コマンドは、シェルで使用されるパス名と、シェルがコマンド・タイプ (組み込みコマンド、関数、別名など) をどのように解釈するかを標準出力に書き出します。 -v フラグや -V フラグを指定すると、現行のシェル環境に関連する出力が生成されるので、command コマンドは Korn シェル (POSIX シェル) の正規組み込みコマンドとして提供されます。/usr/bin/command コマンドは、サブシェルまたは別個のコマンド実行環境で呼び出されるので、正しい結果を生成しないことがあります。以下の例で、シェルは別名、サブルーチン、または特殊シェル・コマンドを識別できません。
(PATH=foo command -v)
nohup command -vフラグ
| 項目 | 説明 |
|---|---|
| -p | すべての標準コマンドを検索する PATH 環境変数のデフォルト値を使用して、コマンド検索を実行します。 |
| -v | 以下の規約に従って、指定されたコマンドを呼び出すために現行シェルが使用するパス名を、標準出力に書き出します。
指定したコマンド名が見つからなければ、出力は書き込まれず、終了状況の値 >0 が戻されます。 |
| -V | 現行のシェル環境によって解釈されるコマンド名が、標準出力に書き出されます。
この出力のフォーマットは未指定で、コマンドが以下のどのカテゴリーに属するかを示します。
|
終了状況
-v または -V フラグを指定すると、以下の終了値が戻されます。
| 項目 | 説明 |
|---|---|
| 0 | 正常終了。 |
| >0 | CommandName パラメーターで指定したコマンドが見つからなかったか、またはエラーが発生しました。 |
-v または -V フラグを指定しなかった場合は、以下の終了値が戻されます。
| 項目 | 説明 |
|---|---|
| 126 | CommandName パラメーターが見つかりましたが、呼び出すことはできませんでした。 |
| 127 | command コマンド内でエラーが発生したか、または CommandName パラメーターで指定したコマンドが見つかりませんでした。 |
それ以外の場合、command コマンドは CommandName パラメーターで指定したコマンドに関連する終了状況を戻します。
例
- ディレクトリーを変更したときに新しい作業ディレクトリーが出力される cd コマンドのバージョンを作成するには、
以下のように入力します。
cd () { command cd "$@" >/dev/null pwd } - セキュア・シェル・スクリプトを、
スクリプトがその親による影響を受けないようにして開始するには、
以下のように入力します。
このとき、PATH 環境変数によって呼び出されるディレクトリーに正しい許可が設定されていれば、このスクリプトは間違いなく目的のコマンドを呼び出すことができます。IFS=' ' # The preceding value should be <space><tab><newline>. # Set IFS to its default value ¥unalias -a # Unset all possible aliases. # Note that unalias is escaped to prevent an alias # being used for unalias. unset -f command # Ensure command is not a user function. PATH="$(command -p getconf _CS_PATH):$PATH" # Put on a reliable PATH prefix. # ...
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/ksh | Korn シェルの command 組み込みコマンドが入っています。 |
| /usr/bin/command | command コマンドが入っています。 |