Qual é a diferença entre o comando echo integrado e /bin/echo?

Qual é a diferença entre o comando echo integrado e /bin/echo?

Eu estava brincando com os typecomandos whiche e descobri algo estranho.

typeretorna o caminho ou diz que um comando é um Bash integrado. whichretorna o caminho ou nada para comandos integrados como exitoutype

O que é estranho é que type echodiz que echo está embutido como eu esperava.

Mas which echofornece /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 echoe um comando echo. Use type -a echopara ver todos eles.

Por typeser 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.

informação relacionada