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:
- Curso completo de Linux por R$19,90
- Meu canal no YouTube que praticamente só tem conteúdo usando a linha de comando!
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
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 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:
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'
Em ordem:
- Declaramos uma variável com o valor “date”
- Declaramos uma variável com o valor “+%s”
- Se executarmos com aspas simples, o Bash entende como caractere normal e não interpreta as variáveis
- 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.
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:
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.
Execução:
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!