Comando eval

Publicado por Marcos Paulo Ferreira em 05/07/2006

[ Hits: 21.867 ]

Blog: http://daemoniolabs.wordpress.com

 


Comando eval



Este comando é simples e útil. Considere a saída de um programa qualquer:

$ programa
SISTEMA=" GNU/Linux"
MEM="512MB"
MY_SHELL="/bin/bash"

A saída foi nomes de variáveis do sistema e seus respectivos conteúdos, só que elas não estão definidas literalmente. Veja:

$ echo "SHELL: $MY_SHELL"

A saída deste comando echo não será o que esperamos, porque a variável MY_SHELL não existe. Com o comando eval, definimos variáveis do sistema apenas com a saída de um comando/programa.

$ eval programa

Agora, se fizermos:

$ echo "Uso $SISTEMA, com $MEM de memória RAM"
Uso GNU/Linux, com 512MB de memória RAM

Vemos que, depois do uso do eval, as variáveis do sistema passam a existir.

Outras dicas deste autor

Truques para tratamento de variáveis em shell script

Leitura recomendada

Descompilando programas

Lidando com compactação de arquivos

Recuperando apt-get após "falha de segmentação"

O comando rename na prática

Criar arquivo vazio de maneira correta no Linux. Não é o touch. Nunca foi. Nunca será...

  

Comentários
[1] Comentário enviado por FelipeAbella em 06/07/2006 - 10:46h

Parece bem útil para setar variáveis em massa e que possam ter interação do usuário.

[2] Comentário enviado por removido em 09/08/2006 - 14:09h

Tentei usar este comando no meu slack 10.2, como não deu certo, tentei o man do comando. Me parece que ele pertence a linguagen tcl. Gostaria de saber como usá-lo no bash ou num script.
Obrigado.

[3] Comentário enviado por daemonio em 26/08/2006 - 19:51h

Bom fgsmail também uso slack10.2 e o comando funfou. Mas me parece que tem um erro nesta dica, o certo é:

$ eval `programa`
e não
$ eval programa

Tenta aí.



Contribuir com comentário