Os recursos internos do shell só podem ser acessados pelo shell, portanto, os comandos externos não podem executá-los. por exemplo. o comando time externo só pode executar outros comandos externos. Comandos externos não podem executar built-ins de shell, aliases de shell ou funções de shell.
Note que os shells são, por sua vez, comandos externos (por exemplo, /bin/sh , /bin/bash etc), portanto, os comandos externos podem executar o shell com -c , por ex. compare sh -c 'time echo foo' a sh -c '/usr/bin/time echo foo' ou execute um script de shell que use built-ins.
Se houver comandos externos com o mesmo nome de um shell embutido (por exemplo, time , echo , kill , ...), os comandos externos poderão executá-los, mas mesmo se eles executarem a mesma tarefa básica é provável que sejam ligeiramente diferentes (por exemplo, opções de linha de comando diferentes, formato de saída diferente, capacidades diferentes - kill embutido pode matar pelo número do trabalho do shell,% externo kill não pode).
Os recursos internos do shell (por exemplo, time ou command ) podem executar comandos internos ou externos, além de aliases e funções do shell.