shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Bug no sistema ou divergência na documentação?


From: Fernando
Subject: Re: [shell-script] Bug no sistema ou divergência na documentação?
Date: Fri, 17 Sep 2010 15:04:05 -0300

Exato. Se você renomear o binário /bin/echo para qualquer outra coisa, e
esitver sob o BASH, verá que o comando echo continua funcionando. Ou seja,
agora você está usando o built-in do BASH.

No caso do Debian, o programa echo é instalado com o pacote coreutils [
http://gnu.org/software/coreutils]. A questão é que nem todo shell é
obrigado a ter um echo built-in, então a distro oferece o comando. Não sei
se há outros motivos.

Um abraço.

Att,

@Fernando Mercês <http://twitter.com/FernandoMerces>
Linux Registered User #432779
www.mentebinaria.com.br
http://linuxreversing.org



2010/9/17 Tiago Peczenyj <address@hidden>

> Ola
>
> O echo é um built-in. Porém vc tem um aplicativo chamado echo também - que
> se encontra no seu PATH.
>
> tente fazer
>
> echo -e "oi"  e /bin/echo -e "oi" .. provavelmente o resultado sera
> diferente, com o /bin imprimindo -e como uma string pois não reconhece o
> mesmo como argumento (pelo menos no BSD). o que acontece é que existe um
> built-in chamado echo então o /bin/echo não é chamado se vc não especifica
> o
> caminho do comando, pois um comando built-in tem precedencia sobre
> aplicativos no path.
>
> O mesmo vale para funcoes. crie uma funcao echo e chame echo -- vai ver que
> ela sera resolvida primeiro.
>
> Acredito que estes aplicativos devam existir por alguma razão historica OU
> para que alguns scripts não dependam de built-in e tenham o mesmo
> comportamento independente do shell.
>
> 2010/9/17 tammyribeiro <address@hidden>
>
> >
> >
> > Bom dia.
> >
> > O 'Bash Reference Manual' (ver-4.1, 23/12/2009, formato PDF) traz a
> > seguinte informação:
> >
> > * Chapter 2: Definitions, page 3.
> > " builtin - A command that is implemented internally by the shell itself,
> > rather than by an executable program somewhere
> > in the file system."
> >
> > * Tradução aproximada:
> > * Capítulo 2: Definições, página 3.
> > " builtin - Um comando que é implementado internamente pelo próprio
> shell,
> > ao invés de um programa executável em algum lugar no sistema de
> arquivos."
> >
> > Agora observemos alguns resultados obtidos em um sistema 'Debian
> GNU/Linux
> > (Lenny)'.
> >
> > Comando.1 -> 'whereis echo'
> > Comando.2 -> 'file /bin/echo'
> > Comando.3 -> 'type echo'
> > Saída.1 -> echo: /bin/echo /usr/share/man/man1/echo.1.gz
> > Saída.2 -> /bin/echo: ELF 32-bit LSB executable, Intel 80386, version 1
> > (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8,
> > stripped.
> > Saída.3 -> echo is a shell builtin
> >
> > A saída 3 está de acordo com a documentação oficial (manual do Bash,
> > páginas: 3 e 151). Todavia, parece haver divergência com as saídas 1 e 2.
> > Esta nos diz o que é 'echo', aquela mostra-nos onde o executável está
> > (/bin). Muitos dirão arrazoadamente, que isto é uma questão de somenos
> > importância. Mas, como usuário de sistema 'GNU/Linux' vou tentar
> contribuir
> > para a depuração (de software e documentação) do mesmo, e neste caso
> > específico, para a melhoria do BASH (nosso shell GNU/Linux).
> >
> > Provavelmente há outros bugs. Todos os 'builtins' do bash estão listados
> na
> > páginas 151/152, e gostaria de obter dos senhores um programa shell
> (shell
> > script) para a localização e correção de outras possíveis divergências
> desta
> > natureza.
> >
> >
> >
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]