Mateus Müller

O carinha do Linux

24 jul. 2019

Como usar o comando EVAL no LINUX

O comando eval causa muita confusão no mundo Linux, seja na utilização na própria linha de comando ou até mesmo por meio de um Shell Script. O ponto é que este comando é extremamente útil, principalmente no desenvolvimento de scripts, que é onde eu particularmente uso mais.

Requisitos

Para que você tire o melhor proveito dessa dica, é interessante que você já tenha alguma vivência com a linha de comando do Linux. Sugiro os seguintes links:

O que é e como usar o EVAL?

O eval é um comando que é integrado ao Bash, ou seja, você não precisa instalar nada externamente, bem como não pertence a algum pacote específico. Chamamos isso de shell built-in.

Você pode ver isso rodando o seguinte comando:

$ which eval

Como usar o comando EVAL no LINUX

Pode notar que ele não fica hospedado em diretórios como o /usr/bin, /bin, etc. Ele está realmente integrado dentro do Bash.

A segunda coisa que você precisa saber dele é que ele não possui manual por conta disso (pelo menos, na maioria das distribuições).

$ man eval

Como usar o comando EVAL no LINUX

Como ele faz parte do Bash, para obter maiores informações, precisamos ler o manual do próprio Bash. Veja a descrição dentro do manual:

Como usar o comando EVAL no LINUX

Em poucas palavras, “os argumentos são lidos e concatenados juntos em um comando só”.

Vamos fazer um exemplo prático e fácil de entender.

$ data_hoje="date"
$ data_param="+%s"
$ '$data_hoje' '$data_param'
$ eval '$data_hoje' '$data_param'

Como usar o comando EVAL no LINUX

Em ordem:

  1. Declaramos uma variável com o valor “date”
  2. Declaramos uma variável com o valor “+%s”
  3. Se executarmos com aspas simples, o Bash entende como caractere normal e não interpreta as variáveis
  4. Se usarmos o eval, ele força as variáveis e combina elas em uma linha de comando, mostrando o resultado final

Se colocarmos um echo ali no meio, dá pra entender exatamente o que está acontecendo.

Como usar o comando EVAL no LINUX

Massa, né? Mas não parece tão útil… Espera! Em Shell Script isso é muito útil.

EVAL em Shell Script

Se você não entender nada daqui para baixo, sugiro fazer meu curso de Shell Script que está disponível na aba de cursos aqui do blog.

Veja a seguinte linha:

Como usar o comando EVAL no LINUX

Basicamente, se o arquivo não existir, eu rodo o comando ffmpeg para converter vídeos. O importante é entender que estou passando várias strings como parâmetros para o comando ffmpeg, mas ele não consegue entender isso.

Agora veja o resultado adicionando um eval echo na frente do comando.

Como usar o comando EVAL no LINUX

Execução:

Como usar o comando EVAL no LINUX

Agora funcionou normalmente, porque ele concatenou todas as variáveis em uma linha de comando somente. Percebeu a diferença? Os poderes do Shell.

Conclusão

O eval é um comando extremamente útil quando é necessário combinar os valores de variáveis e strings em uma linha de comando somente.

Bom, espero que tenha gostado dessa dica. Se gostou, não esqueça de compartilhar com os colegas em grupos de Linux. Este artigo pode ajudar muitas outras pessoas.

Me siga no Instagram onde eu faço conteúdos da minha rotina diária.

Participe dos nossos grupos no Telegram e Facebook! 🙂

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus