„Linux“ komandos

Bash eval komanda

Bash eval komanda
„eval“ komanda naudojama „bash“, norint vykdyti tokius argumentus kaip „shell“ komanda. Argumentai sujungiami į eilutę ir laikomi „shell“ komandos įvestimi komandai įvykdyti. 'eval' vykdo komandą dabartiniame apvalkale. Ši komanda yra naudinga, kai reikia vykdyti bet kurią komandą, kurioje yra specialus operatorius arba rezervuoti raktiniai žodžiai. Ši komanda gali būti naudojama bet kuriame scenarijuje, taip pat ir tada, kai kintamojo vardas nežinomas iki scenarijaus vykdymo. Ši pamoka padės „Linux“ vartotojams išmokti naudoti šią komandą.

Sintaksė:

eval [argumentas…]

Čia argumentai analizuojami ir sujungiami į eilutę, kurią vykdys apvalkalas. „eval“ grąžina išėjimo būsenos kodą, įvykdęs komandą. 'eval' grąžina 0 kaip išėjimo būsenos kodą, jei nepateikiamas argumentas arba pateikiamas tik nulinis argumentas.

1 pavyzdys: vykdykite komandą „wc“ naudodami „eval“

Tarkime, kad tekstinis failas pavadinimu „skyrius.txt“Yra toks tekstas. „Wc“ komanda gali suskaičiuoti bendrą failo eilučių skaičių.

skyrius.txt

TPP
EEĮ
ETE
ANGLŲ
BBA
FARMACIJA

Ši komanda išsaugos komandą „wc“, kad suskaičiuotų bendrą failo eilučių skaičių, skyrius.txt prie kintamojo, $ mycommand.

$ mycommand = "wc -l skyrius.txt "

Ši komanda „eval“ vykdys komandą „wc“ ir išspausdins bendrą eilučių skaičių.

$ eval $ mycommand

Išvestis:

Išvestis tai rodo skyrius.txt faile yra 6 eilutės.

2 pavyzdys: vykdykite komandą „expr“ naudodami „eval“

Sukurkite bash failą pavadinimu vertingiausias.sh ir pridėkite šį scenarijų. Šis scenarijus priskirs dvi sveiko skaičiaus reikšmes kintamajam $ x ir $ y. „Expr“ ir „echo“ komandos priskiriamos dviem kintamiesiems: $ c1 ir $ c2, kurie įvykdomi vėliau naudojant „eval“ komandą.

vertingiausias.sh

#!/ bin / bash
# Inicializuokite kintamąjį x ir y
x = 5
y = 15
# Pirmasis komandos kintamasis naudojamas priskirti komandą „expr“, kad būtų pridėtos $ x ir $ y reikšmės
c1 = "'expr $ x + $ y'"
# Antrasis komandos kintamasis naudojamas komandai „echo“ priskirti
c2 = "aidas"
# 'eval' apskaičiuos ir atspausdins $ x ir $ y sumą vykdydamas $ c1 komandas
ir $ c2 kintamieji
eval $ c2 $ c1

Paleiskite scenarijų.

$ bash evaltest.sh

5 ir 15 suma yra 20, kuri rodoma išvestyje.

3 pavyzdys: atspausdinkite kitam kintamajam priskirto kintamojo vertę

Sukurkite bash scenarijų pavadinimu evaltest2.sh su tokiu scenarijumi. Čia vienas kintamasis naudojamas priskirti kito kintamojo, kuriame yra eilutės duomenys, pavadinimą. „eval“ komanda išspausdins kintamojo, kuriame yra kito kintamojo vardas, vertę.

evaltest2.sh

#!/ bin / bash
# Priskirkite eilutės vertę kintamajam $ str1
str1 = "Apvalkalo scenarijus"
# Priskirkite kintamojo pavadinimą „str1“ kintamajam $ str2
str2 = str1
#Saugokite komandą kintamajame, $ komanda
komanda = "aidas"
# „eval“ komanda vykdys komandą „echo“ ir atspausdins kintamojo vertę
kad yra kitame kintamajame
eval $ komanda \ $ $ str2

Paleiskite scenarijų.

$ bash evaltest2.sh

Atspausdinama kintamojo $ str1 vertė.

Yra dar vienas būdas pasiekti kintamojo, kurio pavadinimas yra kito kintamojo, vertę. Naudojant „!'simbolis, galima pasiekti šio tipo kintamųjų vertę. Ši komanda gali būti naudojama kaip ankstesnio scenarijaus alternatyva, o išvestis bus ta pati.

$ str1 = "Apvalkalo scenarijus"; str2 = str1; komanda = "aidas"; eval $ komanda $ !str2

4 pavyzdys: sukurkite kintamųjų seriją su vertėmis ir apskaičiuokite reikšmių sumą naudodami komandą „eval“

Sukurkite bash scenarijų pavadinimu evaltest3.sh ir pridėkite šį scenarijų. Šis scenarijus sukurs kintamųjų seriją ir išsaugos reikšmes kintamuosiuose naudodamas komandą „eval“. Kintamųjų reikšmės bus pridėtos ir saugomos kintamajame, pavadintame $ sum. Tada komanda „echo“ su eilutės reikšmėmis priskiriama kintamajam, kuris naudojamas komandoje „eval“, norint atspausdinti kintamojo $ sumą.

evaltest3.sh

#!/ bin / bash
# Inicializuokite kintamąjį $ sum su 0 reikšme
suma = 0
# Paskelbkite „for loop“, kuris kartosis 4 kartus
už n 1… 4
padaryti
# Sukurkite keturis kintamuosius naudodami komandą eval
eval x $ n = $ n
# Pridėkite kintamojo reikšmes su $ sum
suma = $ (($ suma + $ x $ n))
padaryta
# Priskirkite komandą echo su eilute į kintamąjį
command = "echo 'Sumos ='" rezultatas
# „eval“ komanda atspausdina sumos vertę naudodama kintamuosius
eval $ komanda $ sum

Paleiskite scenarijų.

$ bash evaltest3.sh

Keturių kintamųjų suma yra 1 + 2 + 3 + 4 = 10, kuri yra atspausdinta.

5 pavyzdys: „eval“ komandos naudojimas failų sąrašui pašalinti

Sukurkite bash failą pavadinimu evaltest4.sh su tokiu scenarijumi. Šis scenarijus nuskaitys tris komandinės eilutės argumentus kaip failų pavadinimus, kurie bus pašalinti, ir išsaugos argumento reikšmes masyvo kintamajame $ fn. 'rm' komanda saugoma kintamajame $ komandoje. Nes kilpa yra deklaruota, kad gautumėte kiekvieną failo pavadinimą ir pašalintumėte failą naudodami komandą „eval“, jei failas egzistuoja.

evaltest4.sh

#!/ bin / bash
#Paskelbkite masyvą
paskelbti -A fn
# Perskaitykite tris komandinės eilutės argumentus ir išsaugokite į tris masyvo rodykles
fn [0] = 1 USD
fn [1] = 2 USD
fn [2] = 3 USD
# Išsaugokite komandą pašalinti kintamajame
komanda = "rm"
# for loop kartos tris kartus, norėdamas perskaityti tris masyvo elementus
indeksui 0 1 2
padaryti
# Patikrinkite, ar failas yra, ar jo nėra
jei [[-f $ fn [$ index]]]; tada
# jei failas yra, pašalinkite failą
eval $ komanda $ fn [$ index]
# Informuokite vartotoją, kad failas pašalintas
aidas „$ fn [$ index] ištrintas."
Kitas
#Informuokite vartotojui, kad failo nėra
aidas "$ fn [$ index] neegzistuoja."
fi
padaryta

Paleiskite scenarijų.

$ bash evaltest4.sh ženklai.docx elementas.txt produktas.docx

Čia vykdant scenarijų pateikiami trys failų pavadinimai. Išvestis rodo tas žymes.docx ir produktas.docx yra dabartinėje vietoje, o failai pašalinami ir, elementas.txt neegzistuoja dabartinėje vietoje.

Išvada

Bet kurią „bash“ komandą galima įvykdyti „eval“ komanda, deklaruojant kaip eilutę. „eval“ komanda naudojama šioje pamokoje vykdant įvairias įmontuotas „bash“ komandas ir kuriant kintamųjų seriją. „Eval“ komandos naudojimas bus išvalytas vartotojams ir jie galės naudoti šią komandą įvairiems tikslams perskaitę šią pamoką.

Mėgdžiokite pelės paspaudimus, užveskite pelės žymeklį naudodami pelę „Clickless Mouse“ sistemoje „Windows 10“
Pelės ar klaviatūros naudojimas netinkamoje laikysenoje, kai naudojama per daug, gali sukelti daug sveikatos problemų, įskaitant įtampą, riešo kanalo ...
Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...
Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...