Ich weiß, was ein eingebauter Befehl ist, aber was macht er builtin
selbst? Das Ausführen which ls
zeigt mir /bin/ls
, aber das Ausführen which builtin
gibt nichts zurück.
man builtin
gibt mir nur eine Liste der eingebauten Befehle, von denen einer ist builtin
. Der Rest der Manpage erklärt, was ein Builtin ist, aber nicht wasbuiltin
.
builtin --help
sagt mir builtin: usage: builtin [shell-builtin [arg ...]]
aber immer noch nicht was es macht.
Ist es ein Teil von Bash in einer Weise, die andere eingebaute Befehle nicht sind?
help builtin
.which builtin
gibt keine Ergebnisse zurück, dawhich
der Speicherort externer Befehle gemeldet wird . Wenn Sie die Muschel fragentype builtin
, wird sie Ihnen, nicht überraschend, sagen, dassbuiltin is a shell builtin
. Sie finden das gleiche mitalias
,set
etc.builtin help builtin
Antworten:
Der
builtin
Befehl stellt sicher, dass Sie die in die Shell integrierte Version des Befehls ausführen, anstatt einen anderen Befehl mit demselben Namen auszuführen.cd
Angenommen, Sie haben eine Shell-Funktion definiert, die bei jedem Verzeichniswechsel einen zusätzlichen Status ausgibt. Aber du hast es vermasselt und jetzt kannst du die Verzeichnisse nicht mehr richtig wechseln. Jetzt können Sie tippenbuiltin cd ~
um erfolgreich in Ihr Ausgangsverzeichnis zurückzukehren, ohne die Funktion für beschädigte Shell auszuführen.Übrigens enthält meine Kopie der bash-Manpage einen Abschnitt namens "SHELL BUILTIN COMMANDS" und definiert die Bedeutung des
builtin
Befehls in diesem Abschnitt ( siehe unten).quelle
builtin
Kommando das echte Ergebnis von bash ist.builtin
, auch:function builtin { echo "Hi from builtin :-)"; }
. Dann klappt dasbuiltin
nicht mehr.type builtin
werde dir sagen, ob es der wahre istbuiltin
. Estype
sei denn, wurde durch ein nicht eingebautes ersetzttype
...