Comandi Linux

Bash eval comando

Bash eval comando
Il comando 'eval' è usato in bash per eseguire argomenti come un comando di shell. Gli argomenti sono uniti in una stringa e presi come input per il comando shell per eseguire il comando. 'eval' esegue il comando nella shell corrente. Questo comando è utile quando richiede di eseguire qualsiasi comando che contenga un operatore speciale o parole chiave riservate. Questo comando può essere utilizzato in qualsiasi script anche in cui il nome della variabile è sconosciuto fino all'esecuzione dello script. Questo tutorial aiuterà gli utenti Linux a imparare l'uso di questo comando.

Sintassi:

eva [argomentazione… ]

Qui, gli argomenti vengono analizzati e combinati in una stringa che verrà eseguita dalla shell. 'eval' restituisce un codice di stato di uscita dopo aver eseguito il comando. 'eval' restituisce 0 come codice di stato di uscita se non viene fornito alcun argomento o viene fornito solo un argomento null.

Esempio 1: eseguire il comando 'wc' utilizzando 'eval'

Supponiamo che un file di testo denominato "Dipartimento.TXT” contiene il seguente testo. Il numero totale di righe del file può essere contato con il comando 'wc'.

Dipartimento.TXT

CSE
EEE
ETE
INGLESE
BBA
FARMACIA

Il seguente comando memorizzerà il comando 'wc' per contare il numero totale di righe del file, Dipartimento.TXT alla variabile, $miocomando.

$ miocomando="wc -l dipartimento.TXT"

Il seguente comando "eval" eseguirà il comando "wc" e stamperà il numero totale di righe.

$ eval $miocomando

Produzione:

L'output mostra che Dipartimento.TXT il file ha 6 righe.

Esempio 2: eseguire il comando 'expr' utilizzando 'eval'

Crea un file bash chiamato più valoroso.sh e aggiungi il seguente script. Questo script assegnerà due valori interi alla variabile $x e $y. I comandi 'expr' e 'echo' sono assegnati in due variabili, $c1 e $c2 che vengono eseguite successivamente utilizzando il comando 'eval'.

più valoroso.sh

#!/bin/bash
#Inizializza la variabile x e y
x=5
y=15
#La prima variabile di comando viene utilizzata per assegnare il comando 'expr' per aggiungere i valori di $x e $y
c1="'espr $x + $y'"
#La seconda variabile di comando viene utilizzata per assegnare il comando 'echo'
c2="eco"
#'eval' calcolerà e stamperà la somma di $x e $y eseguendo i comandi di $c1
e $c2 variabili
eval $c2 $c1

Esegui lo script.

$ bash evaltest.sh

La somma di 5 e 15 è 20 che viene mostrata nell'output.

Esempio 3: stampa il valore di una variabile assegnata in un'altra variabile

Crea uno script bash chiamato evaltest2.sh con il seguente script. Qui, una variabile viene utilizzata per assegnare il nome di un'altra variabile che contiene una stringa di dati. Il comando 'eval' stamperà il valore della variabile che contiene il nome di un'altra variabile come contenuto.

evaltest2.sh

#!/bin/bash
# Assegna un valore stringa alla variabile, $str1
str1="Script della shell"
# Assegna il nome della variabile, “str1” alla variabile $str2
str2=str1
#Salva il comando nella variabile, $comando
comando = "eco"
# Il comando 'eval' eseguirà il comando 'echo' e stamperà il valore della variabile
che contiene in un'altra variabile
eval $comando \$$str2

Esegui lo script.

$ bash evaltest2.sh

Viene stampato il valore della variabile, $str1.

C'è un altro modo per accedere al valore di una variabile il cui nome è il valore di un'altra variabile. Usando '!simbolo 'è possibile accedere al valore di questo tipo di variabile. Il seguente comando può essere usato in alternativa allo script precedente e l'output sarà lo stesso.

$ str1="Script della shell"; str2=str1; comando="eco"; eval $comando $!str2

Esempio-4: creare una serie di variabili con valori e calcolare la somma dei valori utilizzando il comando 'eval'

Crea uno script bash chiamato evaltest3.sh e aggiungi il seguente script. Questo script creerà una serie di variabili e memorizzerà i valori nelle variabili usando il comando 'eval'. I valori delle variabili verranno aggiunti e memorizzati in una variabile denominata $sum. Successivamente, il comando 'echo' con valori stringa viene assegnato in una variabile che viene utilizzata nel comando 'eval' per stampare il valore della variabile $sum.

evaltest3.sh

#!/bin/bash
# Inizializza la variabile $sum con il valore 0
somma=0
# Dichiara un ciclo for che itera per 4 volte
per n in 1… 4
fare
# Crea quattro variabili usando il comando eval
eval x$n=$n
# Aggiungi i valori della variabile con $somma
somma=$(($somma+$x$n))
fatto
# Assegna il comando 'echo' con una stringa in una variabile
command="echo 'Il risultato della somma='"
# Il comando 'eval' stampa il valore della somma usando le variabili
eval $comando $somma

Esegui lo script.

$ bash evaltest3.sh

La somma delle quattro variabili è 1+2+3+4=10 che viene stampata.

Esempio-5: utilizzo del comando 'eval' per rimuovere l'elenco dei file

Crea un file bash chiamato evaltest4.sh con il seguente script. Questo script leggerà tre argomenti della riga di comando come nomi di file che verranno rimossi e memorizzerà i valori degli argomenti in una variabile di matrice, $ fn. Il comando 'rm' è memorizzato in una variabile, $comando. For loop è dichiarato qui per recuperare ogni nome di file e rimuovere il file usando il comando 'eval' se il file esiste.

evaltest4.sh

#!/bin/bash
#Dichiara un array
dichiarare -A fn
# Legge tre argomenti della riga di comando e memorizza in tre indici dell'array
fn[0]=$1
fn[1]=$2
fn[2]=$3
# Memorizza il comando remove in una variabile
comando = "rm"
# for loop itererà tre volte per leggere tre elementi dell'array
per indice in 0 1 2
fare
# Controlla che il file esista o non esista
if [[ -f $fn[$indice] ]]; poi
# se il file esiste, rimuovi il file
eval $comando $fn[$indice]
# Informa l'utente che il file è stato rimosso
echo "$fn[$index] è stato cancellato."
Altro
#Informa l'utente che il file non esiste
echo "$fn[$indice] non esiste."
fi
fatto

Esegui lo script.

$ bash evaltest4.segni di sh.articolo docx.txt prodotto.docx

Qui vengono forniti tre nomi di file al momento dell'esecuzione dello script. L'output mostra che segna.docx e prodotto.docx esiste nella posizione corrente e i file vengono rimossi e, elemento.txt non esiste nella posizione corrente.

Conclusione

Qualsiasi comando bash può essere eseguito dal comando 'eval' dichiarandolo come una stringa. Il comando 'eval' viene utilizzato in questo tutorial per eseguire diversi comandi incorporati di bash e creare una serie di variabili. Gli usi del comando 'eval' saranno cancellati per gli utenti e saranno in grado di usare questo comando per vari scopi dopo aver letto questo tutorial.

Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...
Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...