組み込みの echo コマンドと /bin/echo の違いは何ですか?

組み込みの echo コマンドと /bin/echo の違いは何ですか?

typeコマンドとコマンドをいろいろ試していたらwhich、奇妙なことが分かりました。

typeパスを返すか、コマンドがBashの組み込みコマンドであることを示します。 whichまたは組み込みコマンドの場合はパスを返すか、何も返しませんexittype

奇妙なのは、type echo予想通りエコーが組み込まれていると書かれていることです。

ただし、which echoecho 実行可能ファイルへのパスとして /bin/echo を指定します。これは、他の組み込みコマンドでは発生しないようです。

これら 2 つの違いは何なのか、Bash がスクリプトとコマンド ラインでどちらを実行するのか、そして 2 つの echo の背後にあるストーリーは何なのかを知りたいです。

私のシステムはUbuntu Desktop 12.04です

答え1

echo組み込みコマンドとコマンドがありますecho。 を使用してtype -a echo、すべてを表示します。

typeそれ自体がシェルの組み込み関数であるため、他の組み込み関数について認識することができます。

これはwhich通常のコマンドにすぎません。したがって、どのシェルを使用しているかはわかりません。ディスク上のコマンドについてのみ通知されます。

通常、これtypeは、シェルに何らかの単語を入力した場合何が起こるかを示す正しいコマンドです。

関連情報