Sirve principalmente para asegurarse de que el cofre de herramientas POSIX esté disponible tanto dentro como fuera de un shell (consulte la justificación POSIX para solicitarlos ).
Para cd
, eso no es tremendamente útil, pero tenga en cuenta que cd
cambia los directorios pero tiene otros efectos secundarios: devuelve un estado de salida que ayuda a determinar si puede acceder chdir()
a ese directorio o no, y genera un mensaje de error útil que explica por qué no puede chdir()
cuando no puedes
Ejemplo:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
Otro posible efecto secundario es el montaje automático de un directorio.
En algunos sistemas, la mayoría de los comandos externos para las construcciones de shell estándar se implementan como un enlace simbólico al mismo script que:
#! /bin/sh -
"${0##*/}" "$@"
Es decir, iniciar un shell y ejecutar el builtin en él.
Algunos otros sistemas (como GNU) tienen utilidades como verdaderos comandos ejecutables que pueden generar confusión cuando el comportamiento difiere de la versión incorporada del shell.
/usr/bin/cd
, solo el shell incorporado.