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

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

type触れながら命令を出しているwhichうちに奇妙な点を発見しました。

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

奇妙なことに、期待type echoどおりにechoが組み込まれています。

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

Bashがスクリプトとコマンドラインで実行することを選択した2つの違いは何ですか、そしてこれら2つのエコーの後に隠された物語が何であるかを知りたいです。

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

答え1

組み込み関数echoとコマンドがありますechotype -a echoすべて見るためです。

独自に組み込まれたシェルなので、type他の組み込みについても知っています。

そしてちょうどwhich一般的なコマンドです。そのため、どのシェルを使用しているのかわからず、ディスク上のコマンドのみを通知します。

通常、typeシェルに特定の単語を入力すると、何が起こるかを知らせるのが正しいコマンドです。

関連情報