Comando Bash eval builtin
Em sistemas operacionais do tipo Unix, eval é um comando interno do shell Bash . Concatena seus argumentos em uma única sequência , juntando os argumentos com espaços e depois executa essa sequência como um comando bash. É semelhante à execução de bash -c “ string “ , mas eval executa o comando no ambiente atual do shell em vez de criar um processo de shell filho .
Descrição
O comando eval não é usado com muita frequência no bash. Em outros shells, ele pode ser usado em scripts como uma maneira de obter o valor de uma variável cujo nome não é conhecido até que o script seja executado. No bash, no entanto, isso pode ser feito com indireção variável usando a sintaxe:
$ {! varname }
Para obter mais informações, consulte Indireção variável no bash .
Em geral, eval é útil se você precisar avaliar uma string mais um tempo antes de ser avaliada pelo bash. Também pode ser útil se você precisar construir programaticamente um comando que contenha operadores especiais ou palavras reservadas .
Sintaxe
eval [ argumento ...]
Exemplos
c = "eco"; a1 = "Olá"; a2 = "Mundo!"; eval $ c $ a1 $ a2
Atribua cadeias às variáveis c , a1 e a2 . Em seguida, use eval para avaliar esses argumentos e junte-os em uma única sequência, com um espaço entre cada um. Em seguida, execute essa sequência como um comando ” eco Olá, Mundo! “. Resultado:
Olá Mundo!
cmd1 = "cmd2"; cmd2 = "eco Olá!"; eval \ $ {$ cmd1}
Aqui, eval é usado para fornecer uma camada adicional de avaliação antes que um comando seja executado. Especificamente, o eval avalia \ $ {$ cmd1} como ” $ {cmd2} ” (a barra invertida escapa do cifrão, para que seja avaliada como um caractere literal $ ), depois passa a string para bash para execução. O comando $ {cmd2} é avaliado pelo bash usando a expansão de parâmetros (consulte expansão de parâmetros no bash para obter mais informações). O resultado final é o comando ” eco Hi! “. Resultado:
Oi!
Comandos relacionados
exec – Destrua o shell atual e substitua-o por um novo processo.