Eu estava brincando com os type
comandos which
e e descobri algo estranho.
type
retorna o caminho ou diz que um comando é um Bash integrado.
which
retorna o caminho ou nada para comandos integrados como exit
outype
O que é estranho é que type echo
diz que echo está embutido como eu esperava.
Mas which echo
fornece /bin/echo como o caminho para o executável do echo. Isso não parece acontecer com nenhum outro comando integrado.
Estou me perguntando qual é a diferença entre os dois, qual Bash escolhe para executar em scripts e na linha de comando e qual é a história por trás dos dois ecos.
Meu sistema é Ubuntu Desktop 12.04
Responder1
Existe um builtin echo
e um comando echo
. Use type -a echo
para ver todos eles.
Por type
ser um shell integrado, ele é capaz de conhecer outros componentes internos.
E which
é apenas um comando usual. Portanto, ele não sabe qual shell você está usando e apenas informa sobre os comandos no disco.
Geralmente type
é o comando correto para dizer o que acontece se você digitar alguma palavra no seu shell.