Linux-kommandoer

Bash eval kommando

Bash eval kommando
kommandoen 'eval' bruges i bash til at udføre argumenter som en shell-kommando. Argumenter sammenføjes i en streng og tages som input til shell-kommandoen for at udføre kommandoen. 'eval' udfører kommandoen i den aktuelle skal. Denne kommando er nyttig, når den kræver at udføre en kommando, der indeholder en speciel operator eller reserverede nøgleord. Denne kommando kan bruges i ethvert script, også hvor variabelnavnet er ukendt, indtil scriptet udføres. Denne tutorial hjælper Linux-brugere med at lære brugen af ​​denne kommando.

Syntaks:

eval [argument ...]

Her analyseres argumenter og kombineres til en streng, der udføres af skallen. 'eval' returnerer en exit-statuskode efter udførelse af kommandoen. 'eval' returnerer 0 som exit-statuskode, hvis der ikke gives noget argument, eller der kun gives null-argument.

Eksempel 1: Udfør kommandoen 'wc' ved hjælp af 'eval'

Antag en tekstfil med navnet “afdeling.txt”Indeholder følgende tekst. Det samlede antal linjer i filen kan tælles med kommandoen 'wc'.

afdeling.txt

CSE
EEE
ETE
ENGELSK
BBA
APOTEK

Den følgende kommando gemmer 'wc' -kommandoen for at tælle det samlede antal linjer i filen, afdeling.txt til variablen, $ mycommand.

$ mycommand = "wc -l afdeling.txt "

Den følgende kommando 'eval' kører kommandoen 'wc' og udskriver det samlede antal linjer.

$ eval $ mycommand

Produktion:

Outputtet viser det afdeling.txt filen har 6 linjer.

Examplel-2: Udfør kommandoen 'expr' ved hjælp af 'eval'

Opret en bash-fil med navnet evaltest.sh og tilføj følgende script. Dette script tildeler to heltalsværdier til variablen $ x og $ y. Kommandoer 'expr' og 'echo' tildeles i to variabler, $ c1 og $ c2, der udføres senere ved hjælp af kommandoen 'eval'.

evaltest.sh

#!/ bin / bash
#Initialiser variablen x og y
x = 5
y = 15
#Den første kommandovariabel bruges til at tildele 'expr' kommando for at tilføje værdierne på $ x og $ y
c1 = "'ekspr $ x + $ y'"
#Den anden kommandovariabel bruges til at tildele kommandoen 'ekko'
c2 = "ekko"
# 'eval' beregner og udskriver summen af ​​$ x og $ y ved at udføre kommandoerne på $ c1
og $ c2 variabler
eval $ c2 $ c1

Kør scriptet.

$ bash evaltest.sh

Summen af ​​5 og 15 er 20, der vises i output.

Eksempel 3: Udskriv værdien af ​​en variabel, der er tildelt i en anden variabel

Opret et bash-script med navnet evaltest2.sh med følgende script. Her bruges en variabel til at tildele navnet på en anden variabel, der indeholder strengdata. kommandoen 'eval' udskriver værdien af ​​variablen, der indeholder en anden variabels navn som indhold.

evaltest2.sh

#!/ bin / bash
# Tildel en strengværdi til variablen $ str1
str1 = "Shell-script"
# Tildel variabelnavnet “str1” til variablen $ str2
str2 = str1
# Gem kommandoen i variablen $ kommando
kommando = "ekko"
# 'eval' kommando udfører kommandoen 'echo' og udskriver værdien af ​​variablen
der indeholder i en anden variabel
eval $ kommando \ $ $ str2

Kør scriptet.

$ bash evaltest2.sh

Værdien af ​​variablen $ str1 udskrives.

Der er en anden måde at få adgang til værdien af ​​en variabel, hvilket navn er værdien af ​​en anden variabel. Ved brug af '!'symbol værdien af ​​denne type variabel kan tilgås. Følgende kommando kan bruges som et alternativ til det forrige script, og output vil være den samme.

$ str1 = "Shell-script"; str2 = str1; command = "ekko"; eval $ kommando $ !str2

Eksempel 4: Opret en række variabler med værdier og beregne summen af ​​værdierne ved hjælp af kommandoen 'eval'

Opret et bash-script med navnet evaltest3.sh og tilføj følgende script. Dette script opretter en række variabler og gemmer værdierne i variablerne ved hjælp af kommandoen 'eval'. Værdierne for variablerne tilføjes og gemmes i en variabel med navnet $ sum. Dernæst tildeles 'ekko-kommando med strengværdier til en variabel, der bruges i kommandoen' eval 'til at udskrive værdien af ​​variablen $ sum.

evaltest3.sh

#!/ bin / bash
# Initialiser den variable $ sum med værdien 0
sum = 0
# Erklær et for-løkke, der gentages 4 gange
for n i 1… 4
gør
# Opret fire variabler ved hjælp af eval-kommandoen
eval x $ n = $ n
# Tilføj værdierne for variablen med $ sum
sum = $ (($ sum + $ x $ n))
Færdig
# Tildel 'ekko-kommando med streng i en variabel
command = "echo 'Resultatet af summen ='"
# 'eval' kommando udskriver sumværdien ved hjælp af variabler
eval $ kommando $ sum

Kør scriptet.

$ bash evaltest3.sh

Summen af ​​de fire variabler er, 1 + 2 + 3 + 4 = 10, der udskrives.

Eksempel 5: Brug kommandoen 'eval' til at fjerne listen over filer

Opret en bash-fil med navnet evaltest4.sh med følgende script. Dette script læser tre kommandolinjeargumenter som filnavne, der fjernes og gemmer argumentværdierne i en matrixvariabel, $ fn. 'rm' kommando er gemt i en variabel, $ kommando. For loop erklæres her for at hente hvert filnavn og fjerne filen ved hjælp af 'eval' kommando, hvis filen findes.

evaltest4.sh

#!/ bin / bash
#Deklarer en matrix
erklære -A fn
# Læs tre argumenter på kommandolinjen, og gem dem i tre indeks i arrayet
fn [0] = $ 1
fn [1] = $ 2
fn [2] = $ 3
# Gem fjern kommandoen i en variabel
kommando = "rm"
# for loop gentages tre gange for at læse tre array-element
for indeks i 0 1 2
gør
# Kontroller, at filen findes eller ikke findes
hvis [[-f $ fn [$ index]]]; derefter
# hvis filen findes, skal du fjerne filen
eval $ kommando $ fn [$ index]
# Informer brugeren om, at filen er fjernet
ekko "$ fn [$ index] er slettet."
Andet
# Informer brugeren om, at filen ikke findes
ekko "$ fn [$ index] findes ikke."
fi
Færdig

Kør scriptet.

$ bash evaltest4.sh mærker.docx-vare.txt-produkt.docx

Her gives tre filnavne på tidspunktet for udførelse af scriptet. Outputtet viser at mærker.docx og produkt.docx findes på den aktuelle placering, og filerne fjernes og element.txt findes ikke den aktuelle placering.

Konklusion

Enhver bash-kommando kan udføres af 'eval' kommando ved at erklære som en streng. 'eval' kommando bruges i denne tutorial til at udføre forskellige indbyggede kommandoer af bash og oprette en række variabler. Brugen af ​​kommandoen 'eval' ryddes for brugerne, og de vil være i stand til at bruge denne kommando til forskellige formål efter at have læst denne vejledning.

Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...