Serve principalmente para garantir que a caixa de ferramentas POSIX esteja disponível dentro e fora de um shell (veja o Justificativa POSIX para requerer aqueles ).
Para cd
, isso não é muito útil, mas observe que cd
altera diretórios, mas tem outros efeitos colaterais: ele retorna um status de saída que ajuda a determinar se você pode chdir()
para esse diretório ou não, e gera uma mensagem de erro útil explicando porque você não pode chdir()
quando 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 o shell padrão é implementada como um link simbólico para o mesmo script que:
#! /bin/sh -
"${0##*/}" "$@"
Isso é iniciar um shell e executar o embutido nele.
Alguns outros sistemas (como o GNU), possuem utilitários como verdadeiros comandos executáveis que podem levar a confusões quando o comportamento difere da versão embutida no shell.