type
Ich habe mit den Befehlen und herumgespielt which
und etwas Seltsames entdeckt.
type
gibt entweder den Pfad zurück oder sagt, dass ein Befehl ein Bash-Built-In ist.
which
gibt entweder den Pfad zurück oder nichts für Built-Ins wie exit
odertype
Seltsam ist, dass, type echo
wie 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 echo
und einen Befehl echo
. Verwenden Sie type -a echo
, um sie alle anzuzeigen.
Da type
es selbst ein Shell-Builtin ist, kann es von anderen Builtins erfahren.
Und which
ist nur ein normaler Befehl. Daher weiß es nicht, welche Shell Sie verwenden, und informiert Sie nur über Befehle auf der Festplatte.
Normalerweise type
ist dies der richtige Befehl, um Ihnen mitzuteilen, was passiert, wenn Sie ein Wort in Ihre Shell eingeben.