Ele serve principalmente para garantir que o baú de ferramentas POSIX esteja disponível dentro e fora de um shell (consulte a lógica do POSIX para solicitá-los ).
Por cd
isso, isso não é tremendamente útil, mas observe que cd
altera os diretórios, mas tem outros efeitos colaterais: ele retorna um status de saída que ajuda a determinar se você pode chdir()
ou não acessar esse diretório e exibe uma mensagem de erro útil explicando por que você não pode chdir()
quando você não pode.
Exemplo:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
Outro efeito colateral potencial é a montagem automática de um diretório.
Em alguns sistemas, a maioria dos comandos externos para os recursos internos do shell padrão é implementada como um link simbólico para o mesmo script que:
#! /bin/sh -
"${0##*/}" "$@"
Isso é iniciar um shell e executar o built-in nele.
Alguns outros sistemas (como o GNU), têm utilitários como verdadeiros comandos executáveis, o que pode levar a confusões quando o comportamento difere da versão interna do shell.
/usr/bin/cd
, apenas o shell embutido.