bash の「コマンド」とは何ですか?

bash の「コマンド」とは何ですか?

端末に入力するとcommand、「コマンドが見つかりません」というメッセージは表示されず、終了コードは 0 になります。これは、command実際に bash で何かを実行することを意味していると思います。

また、command -h以下を返します:

bash: command: -h: invalid option
command: usage: command [-pVv] command [arg ...]

それは何に使われますか?

答え1

からhelp command

$ help command
command: command [-pVv] command [arg ...]
    Execute a simple command or display information about commands.

    Runs COMMAND with ARGS suppressing  shell function lookup, or display
    information about the specified COMMANDs.  Can be used to invoke commands
    on disk when a function with the same name exists.

    Options:
      -p    use a default value for PATH that is guaranteed to find all of
      the standard utilities
      -v    print a description of COMMAND similar to the `type' builtin
      -V    print a more verbose description of each COMMAND

    Exit Status:
    Returns exit status of COMMAND, or failure if COMMAND is not found.

-hより一般的な注意として、コマンドが何をするのか分からないときに使用するのではなく、次のように試してください。

type -a command

この場合、これはシェルの組み込み機能であることがわかります。

help command

シェル組み込みコマンドには適しています。他のコマンド(およびまた実際にはシェル組み込み関数の場合)、

man somecommand

-hまた、必然的に「ヘルプ」オプション。コマンドが何をするのか分からない場合は、その仮定は安全ではない可能性があります。より安全なのは、です--help

somecommand --help

(一般的なコマンドでは、は-h有効なオプションですが、ない「助け」を意味するのはls、、、freeですdfduこれらはすべて参考情報ですが、が-h常に「助け」を意味すると想定するのは危険な想定です。

答え2

commandUnix/Linux のほとんどすべてと同様に、マニュアル ページで文書化されています。 Typing にはman commandマニュアルが用意されておりbash、組み込みコマンド専用のサブセクションがありますcommand

コマンド [-pVv] コマンド [引数 ...]

通常のシェル関数の検索を抑制して、 args 付きで command を実行します。組み込みコマンドまたは PATH で見つかったコマンドだけが実行されます。-p オプションが指定されている場合は、すべての標準ユーティリティが確実に見つかる PATH のデフォルト値を使用して command の検索が行われます。-V または -v オプションのいずれかが指定されている場合は、command の説明が出力されます。-v オプションは、command を呼び出すために使用されたコマンドまたはファイル名を示す 1 つの単語を表示します。-V オプションは、より詳細な説明を生成します。-V または -v オプションが指定されている場合、command が見つかった場合は終了ステータス 0、見つからなかった場合は 1 になります。どちらのオプションも指定されておらず、エラーが発生したか、command が見つからなかった場合は、終了ステータスは 127 になります。それ以外の場合は、組み込みコマンドの終了ステータスは、command の終了ステータスになります。

関連情報