Linux-kommandoer

Bash eval kommando

Bash eval kommando
'eval' kommando brukes i bash for å utføre argumenter som en shell-kommando. Argumenter blir slått sammen i en streng og tatt som input for skallkommandoen for å utføre kommandoen. 'eval' utfører kommandoen i gjeldende skall. Denne kommandoen er nyttig når den krever å utføre en kommando som inneholder en spesiell operator eller reserverte nøkkelord. Denne kommandoen kan brukes i hvilket som helst skript også der variabelnavnet er ukjent før skriptet kjøres. Denne opplæringen vil hjelpe Linux-brukere å lære bruk av denne kommandoen.

Syntaks:

eval [argument ...]

Her blir argumenter analysert og kombinert i en streng som skal kjøres av skallet. 'eval' returnerer en exit-statuskode etter at kommandoen er utført. 'eval' returnerer 0 som exit-statuskode hvis ingen argumenter er gitt eller bare nullargument er gitt.

Eksempel 1: Utfør 'wc' kommando ved hjelp av 'eval'

Anta at en tekstfil kalt “avdeling.tekst”Inneholder følgende tekst. Totalt antall linjer i filen kan telles med kommandoen 'wc'.

avdeling.tekst

CSE
EEE
ETE
ENGELSK
BBA
APOTEK

Følgende kommando lagrer 'wc' -kommandoen for å telle det totale antallet linjer i filen, avdeling.tekst til variabelen, $ mycommand.

$ mycommand = "wc -l avdeling.tekst"

Følgende 'eval' kommando vil kjøre 'wc' kommando og skrive ut totalt antall linjer.

$ eval $ mycommand

Produksjon:

Resultatet viser det avdeling.tekst filen har 6 linjer.

Eksempel 2: Utfør 'expr' kommando ved hjelp av 'eval'

Opprett en bash-fil med navnet evaltest.sh og legg til følgende skript. Dette skriptet tilordner to heltallverdier til variabelen $ x og $ y. Kommandoen 'expr' og 'echo' er tildelt i to variabler, $ c1 og $ c2, som utføres senere ved å bruke kommandoen 'eval'.

evaltest.sh

#!/ bin / bash
#Initialiser variabelen x og y
x = 5
y = 15
#Den første kommandovariabelen brukes til å tilordne 'expr' -kommandoen for å legge til verdiene på $ x og $ y
c1 = "'ekspr $ x + $ y'"
#Den andre kommandovariabelen brukes til å tilordne 'ekko-kommandoen
c2 = "ekko"
# 'eval' vil beregne og skrive ut summen av $ x og $ y ved å utføre kommandoene på $ c1
og $ c2 variabler
eval $ c2 $ c1

Kjør skriptet.

$ bash evaltest.sh

Summen av 5 og 15 er 20 som vises i utgangen.

Eksempel 3: Skriv ut verdien til en variabel som er tildelt i en annen variabel

Opprett et bash-skript som heter evaltest2.sh med følgende skript. Her brukes en variabel til å tilordne navnet på en annen variabel som inneholder strengdata. kommandoen 'eval' vil skrive ut verdien av variabelen som inneholder navnet på en annen variabel som innhold.

evaltest2.sh

#!/ bin / bash
# Tilordne en strengverdi til variabelen, $ str1
str1 = "Shell-skript"
# Tilordne variabelnavnet "str1" til variabelen $ str2
str2 = str1
#Lag kommandoen i variabelen, $ kommando
kommando = "ekko"
# 'eval' -kommandoen utfører kommandoen 'ekko' og skriver ut verdien av variabelen
som inneholder i en annen variabel
eval $ -kommando \ $ $ str2

Kjør skriptet.

$ bash evaltest2.sh

Verdien på variabelen $ str1 skrives ut.

Det er en annen måte å få tilgang til verdien til en variabel, hvilket navn er verdien til en annen variabel. Ved hjelp av '!symbolet verdien av denne typen variabler er tilgjengelig. Følgende kommando kan brukes som et alternativ til forrige skript, og utdataene vil være de samme.

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

Eksempel 4: Lag en serie variabler med verdier og beregne summen av verdiene med kommandoen 'eval'

Lag et bash-skript som heter evaltest3.sh og legg til følgende skript. Dette skriptet vil lage en serie variabler og lagre verdiene i variablene ved hjelp av 'eval' -kommandoen. Verdiene til variablene blir lagt til og lagret i en variabel med navnet $ sum. Deretter tildeles 'ekko-kommando med strengverdier til en variabel som brukes i' eval '-kommandoen for å skrive ut verdien til $ sum-variabelen.

evaltest3.sh

#!/ bin / bash
# Initier variabelen $ sum med verdien 0
sum = 0
# Erklær en for-løkke som vil gjenta 4 ganger
for n i 1… 4
gjøre
# Lag fire variabler ved hjelp av eval-kommandoen
eval x $ n = $ n
# Legg til verdiene til variabelen med $ sum
sum = $ (($ sum + $ x $ n))
ferdig
# Tilordne 'ekko-kommando med streng i en variabel
command = "echo 'Resultatet av summen ='"
# 'eval' kommando skriver ut sumverdien ved hjelp av variabler
eval $ kommando $ sum

Kjør skriptet.

$ bash evaltest3.sh

Summen av de fire variablene er, 1 + 2 + 3 + 4 = 10 som skrives ut.

Eksempel 5: Bruk kommandoen 'eval' til å fjerne listen over filer

Opprett en bash-fil som heter evaltest4.sh med følgende skript. Dette skriptet vil lese tre kommandolinjeargumenter som filnavn som vil bli fjernet og lagre argumentverdiene i en arrayvariabel, $ fn. 'rm' kommando er lagret i en variabel, $ kommando. For loop er erklært her for å hente hvert filnavn og fjerne filen med kommandoen 'eval' hvis filen eksisterer.

evaltest4.sh

#!/ bin / bash
#Deklarer en matrise
erklære -A fn
# Les tre kommandolinjeargumenter og lagre i tre indekser i matrisen
fn [0] = $ 1
fn [1] = $ 2
fn [2] = $ 3
# Lagre fjern kommandoen i en variabel
kommando = "rm"
# for loop vil gjenta tre ganger for å lese tre array-element
for indeks i 0 1 2
gjøre
# Kontroller at filen eksisterer eller ikke eksisterer
hvis [[-f $ fn [$ index]]]; deretter
# hvis filen eksisterer, fjern filen
eval $ -kommando $ fn [$ index]
# Informer brukeren om at filen er fjernet
ekkoet "$ fn [$ index] er slettet."
Ellers
# Informer brukeren om at filen ikke eksisterer
ekko "$ fn [$ index] eksisterer ikke."
fi
ferdig

Kjør skriptet.

$ bash evaltest4.sh merker.docx-vare.txt-produkt.docx

Her er tre filnavn gitt på tidspunktet for utførelse av skriptet. Utgangen viser at merker.docx og produkt.docx finnes på gjeldende plassering, og filene blir fjernet og elementet.txt eksisterer ikke på gjeldende plassering.

Konklusjon

Enhver bash-kommando kan utføres av 'eval' kommando ved å erklære som en streng. 'eval' kommando brukes i denne opplæringen for å utføre forskjellige innebygde kommandoer for bash og lage en serie variabler. Bruken av 'eval' -kommandoen vil bli ryddet for brukerne, og de vil kunne bruke denne kommandoen til forskjellige formål etter å ha lest denne opplæringen.

Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...