Sintaxe:
Eval [argumento…]
Aqui, os argumentos são analisados e combinados em uma corda que será executada pela concha. 'avaliar' retorna um código de status de saída depois de executar o comando. 'avaliar' retorna 0 como código de status de saída se nenhum argumento for fornecido ou apenas o argumento nulo for fornecido.
Exemplo 1: Execute 'wc' comando usando 'avaliar'
Suponha que um arquivo de texto chamado “departamento.TXT”Contém o seguinte texto. O número total de linhas do arquivo pode ser contado pelo comando 'WC'.
departamento.TXT
CSE
Eee
Ete
INGLÊS
BBA
FARMACIA
O comando a seguir armazenará o comando 'WC' para contar as linhas de números totais do arquivo, departamento.TXT para a variável, $ myCommand.
$ myCommand = "Departamento WC -L.TXT"
O seguinte comando 'avaliar' executará o comando 'wc' e imprimirá o número total de linhas.
$ EVAL $ myCommand
Saída:
A saída mostra que departamento.TXT O arquivo tem 6 linhas.
Exemplel-2: Execute 'Expr' Comando usando 'Eval'
Crie um arquivo bash chamado EvalTest.sh e adicione o seguinte script. Este script atribuirá dois valores inteiros à variável $ x e $ y. Os comandos 'Expr' e 'Echo' são atribuídos em duas variáveis, $ C1 e $ C2, que são executados posteriormente usando o comando 'avaliar'.
EvalTest.sh
#!/BIN/BASH
#Initialize a variável x e y
x = 5
y = 15
#A variável de primeiro comando é usada para atribuir o comando 'expr' para adicionar os valores de $ x e $ y
c1 = "'expr $ x + $ y'"
#A Segunda Variável de Comando é usada para atribuir o comando 'Echo'
c2 = "eco"
#'avaliar' calculará e imprimirá a soma de $ x e $ y executando os comandos de $ C1
e variáveis de $ C2
Eval $ C2 $ C1
Execute o script.
$ Bash Evaltest.sh
A soma de 5 e 15 é 20 que é mostrada na saída.
Exemplo 3: Imprima o valor de uma variável que é atribuída em outra variável
Crie um script bash chamado EvalTest2.SH com o seguinte script. Aqui, uma variável é usada para atribuir o nome de outra variável que contém dados de string. O comando 'avaliar' imprimirá o valor da variável que contém o nome de outra variável como conteúdo.
EvalTest2.sh
#!/BIN/BASH
# Atribua um valor de string à variável, $ str1
str1 = "script de shell"
# Atribua o nome da variável, "STR1" à variável $ str2
str2 = str1
#Store o comando na variável, $ comando
comando = "eco"
# 'avaliar' comando executará o comando 'eco' e imprimirá o valor da variável
que contém em outra variável
Eval $ comando \ $ $ str2
Execute o script.
$ Bash EvalTest2.sh
O valor da variável, $ str1 é impresso.
Há outra maneira de acessar o valor de uma variável que nome é o valor de outra variável. Usando '!'Símbolo O valor desse tipo de variável pode ser acessado. O comando a seguir pode ser usado como uma alternativa do script anterior e a saída será a mesma.
$ str1 = "shell script"; str2 = str1; command = "echo"; Eval $ comando $ !str2
Exemplo 4: Crie uma série de variáveis com valores e calcule a soma dos valores usando o comando 'avaliar'
Crie um script bash chamado EvalTest3.sh e adicione o seguinte script. Este script criará uma série de variáveis e armazenará os valores nas variáveis usando o comando 'avaliar'. Os valores das variáveis serão adicionados e armazenados em uma variável chamada $ SUM. Em seguida, o comando 'echo' com valores de string é atribuído a uma variável usada no comando 'avaliar' para imprimir o valor da variável $ sum.
EvalTest3.sh
#!/BIN/BASH
# Inicialize a variável $ sum com o valor 0
soma = 0
# Declare um loop para iterar por 4 vezes
para n em 1… 4
fazer
# Crie quatro variáveis usando o comando de avaliação
Eval x $ n = $ n
# Adicione os valores da variável com $ SUM
soma = $ (($ sum+$ x $ n))
feito
# Atribuir comando 'eco' com string em uma variável
command = "echo 'o resultado da soma ='"
# 'avaliar' comando imprimir o valor da soma usando variáveis
Eval $ comando $ sum
Execute o script.
$ Bash EvalTest3.sh
A soma das quatro variáveis é, 1+2+3+4 = 10 que é impresso.
Exemplo 5: Usando o comando 'avaliar' para remover a lista de arquivos
Crie um arquivo Bash chamado EVAVEST4.SH com o seguinte script. Este script lerá três argumentos da linha de comando como nomes de arquivos que serão removidos e armazenarão os valores do argumento em uma variável de matriz, $ fn. O comando 'rm' é armazenado em uma variável, $ comando. Para o loop é declarado aqui para recuperar cada nome do arquivo e remover o arquivo usando o comando 'avaliar' se o arquivo existir.
EvalTest4.sh
#!/BIN/BASH
#Declare uma matriz
declarar -a fn
# Leia três argumentos da linha de comando e armazene em três índices da matriz
fn [0] = $ 1
fn [1] = $ 2
fn [2] = $ 3
# Armazene o comando Remover em uma variável
command = "rm"
# para o loop iterará por três vezes ler três elementos de matriz
para índice em 0 1 2
fazer
# Verifique se o arquivo existe ou não existe
se [[-f $ fn [$ index]]]; então
# Se o arquivo existir, remova o arquivo
Eval $ comando $ fn [$ index]
# Informe ao usuário que o arquivo é removido
eco "$ fn [$ index] é excluído."
Outro
#Inform ao usuário que o arquivo não existe
eco "$ fn [$ index] não existe."
fi
feito
Execute o script.
$ Bash EvalTest4.SH Marcas.Item DOCX.Produto txt.Docx
Aqui, três nomes de arquivos são fornecidos no momento da execução do script. A saída mostra que marcas.DOCX e produto.Docx existem no local atual e os arquivos são removidos e, item.txt não existe no local atual.
Conclusão
Qualquer comando Bash pode ser executado pelo comando 'avaliar' declarando como uma string. O comando 'Eval' é usado neste tutorial para executar diferentes comandos internos do Bash e criar uma série de variáveis. Os usos do comando 'avaliar' serão limpos para os usuários e eles poderão usar esse comando para vários fins depois de ler este tutorial.