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: Tiago Peczenyj
Subject: Re: [shell-script] Bug no sistema ou divergência na documentação?
Date: Fri, 17 Sep 2010 11:46:21 -0300

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]



reply via email to

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