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.