Sé lo que es un comando incorporado, pero ¿qué hace en builtin
sí mismo? Ejecutar which ls
me muestra /bin/ls
, pero ejecutar which builtin
no devuelve nada.
man builtin
solo me da una lista de comandos incorporados, uno de los cuales es builtin
. El resto de la página del manual explica qué es un builtin incorporado, pero no qué builtin
es.
builtin --help
me dice builtin: usage: builtin [shell-builtin [arg ...]]
pero aún no lo que hace.
¿Es parte de bash de una manera que otros comandos incorporados no lo son?
help builtin
.which builtin
no devuelve resultados porquewhich
informa la ubicación de los comandos externos . Si le preguntas a la conchatype builtin
, te dirá, como era de esperar, quebuiltin is a shell builtin
. Encontrarás lo mismo conalias
,set
etc.builtin help builtin
Respuestas:
El
builtin
comando se asegura de que ejecute la versión integrada del shell del comando en lugar de ejecutar otro comando con el mismo nombre.Por ejemplo, supongamos que definió una función de shell llamada
cd
para imprimir un estado adicional cada vez que cambia de directorio. Pero lo arruinaste y ahora no puedes cambiar los directorios correctamente. Por lo tanto, ahora puede escribirbuiltin cd ~
con éxito el CD de nuevo a su directorio de inicio sin ejecutar su función de shell roto.Y, por cierto, mi copia de la página de manual de bash tiene una sección llamada "COMANDOS SHELL BUILTIN", y define el significado del
builtin
comando en esa sección (transcrita a continuación).fuente
builtin
comando es el verdadero incorporado de bash?builtin
, también:function builtin { echo "Hi from builtin :-)"; }
. Entoncesbuiltin
ya no funciona.type builtin
te dirá si es realbuiltin
. A menos quetype
haya sido reemplazado por un no incorporadotype
...