Was ist der Unterschied zwischen dem integrierten Echo-Befehl und /bin/echo?

Was ist der Unterschied zwischen dem integrierten Echo-Befehl und /bin/echo?

typeIch habe mit den Befehlen und herumgespielt whichund etwas Seltsames entdeckt.

typegibt entweder den Pfad zurück oder sagt, dass ein Befehl ein Bash-Built-In ist. whichgibt entweder den Pfad zurück oder nichts für Built-Ins wie exitodertype

Seltsam ist, dass, type echowie erwartet, das Echo als integriert angezeigt wird.

Gibt aber which echo/bin/echo als Pfad zur ausführbaren Echo-Datei an. Dies scheint bei keinem anderen integrierten Befehl der Fall zu sein.

Ich frage mich, was der Unterschied zwischen den beiden ist, welches Bash zur Ausführung in Skripten und auf der Befehlszeile auswählt und was die Geschichte hinter den beiden Echos ist.

Mein System ist Ubuntu Desktop 12.04

Antwort1

Es gibt eine integrierte Funktion echound einen Befehl echo. Verwenden Sie type -a echo, um sie alle anzuzeigen.

Da typees selbst ein Shell-Builtin ist, kann es von anderen Builtins erfahren.

Und whichist nur ein normaler Befehl. Daher weiß es nicht, welche Shell Sie verwenden, und informiert Sie nur über Befehle auf der Festplatte.

Normalerweise typeist dies der richtige Befehl, um Ihnen mitzuteilen, was passiert, wenn Sie ein Wort in Ihre Shell eingeben.

verwandte Informationen