Príkazy pre Linux

Bash eval príkaz

Bash eval príkaz
Príkaz 'eval' sa v bashe používa na vykonávanie argumentov ako príkaz shell. Argumenty sú spojené do reťazca a brané ako vstup pre príkaz shell na vykonanie príkazu. 'eval' vykoná príkaz v aktuálnom prostredí. Tento príkaz je užitočný, keď vyžaduje vykonanie ľubovoľného príkazu, ktorý obsahuje špeciálny operátor alebo vyhradené kľúčové slová. Tento príkaz je možné použiť v ľubovoľnom skripte, aj keď je názov premennej neznámy, až kým sa skript nespustí. Tento výukový program pomôže používateľom systému Linux naučiť sa používať tento príkaz.

Syntax:

eval [argument ...]

Tu sa argumenty analyzujú a skombinujú do reťazca, ktorý vykoná shell. 'eval' vráti po vykonaní príkazu stavový kód ukončenia. 'eval' vráti 0 ako stavový kód ukončenia, ak nie je uvedený žiadny argument alebo je poskytnutý iba nulový argument.

Príklad-1: Vykonajte príkaz 'wc' pomocou príkazu 'eval'

Predpokladajme, že textový súbor s názvom „oddelenie.TXT”Obsahuje nasledujúci text. Celkový počet riadkov súboru možno spočítať pomocou príkazu „wc“.

oddelenie.TXT

CSE
EEE
ETE
ANGLIČTINA
BBA
LEKÁREŇ

Nasledujúci príkaz uloží príkaz „wc“ na spočítanie celkového počtu riadkov súboru, oddelenie.TXT do premennej, $ môj príkaz.

$ mycommand = "wc -l oddelenie.TXT"

Nasledujúci príkaz „eval“ spustí príkaz „wc“ a vytlačí celkový počet riadkov.

$ eval $ môj príkaz

Výkon:

Výstup to ukazuje oddelenie.TXT súbor má 6 riadkov.

Examplel-2: Vykonajte príkaz 'expr' pomocou 'eval'

Vytvorte bash súbor s názvom evaltest.š a pridajte nasledujúci skript. Tento skript priradí dve celočíselné hodnoty do premenných $ x a $ y. Príkazy „expr“ a „echo“ sú priradené do dvoch premenných, $ c1 a $ c2, ktoré sa vykonajú neskôr pomocou príkazu „eval“.

evaltest.š

#!/ bin / bash
# Inicializujte premenné x a y
x = 5
y = 15
# Prvá premenná príkazu sa používa na priradenie príkazu „expr“ na pridanie hodnôt $ x a $ y
c1 = "'expr $ x + $ y'"
# Druhá premenná príkazu sa používa na priradenie príkazu „echo“
c2 = "ozvena"
# 'eval' vypočíta a vytlačí súčet $ x a $ y vykonaním príkazov $ c1
a $ c2 premenné
eval $ c2 $ c1

Spustite skript.

$ bash evaltest.š

Súčet 5 a 15 je 20, ktoré sa zobrazia na výstupe.

Príklad-3: Vytlačte hodnotu premennej, ktorá je priradená k inej premennej

Vytvorte bash skript s názvom evaltest2.sh s nasledujúcim skriptom. Tu sa jedna premenná používa na priradenie názvu inej premennej, ktorá obsahuje údaje reťazca. Príkaz 'eval' vytlačí ako obsah hodnotu premennej, ktorá obsahuje názov inej premennej.

evaltest2.š

#!/ bin / bash
# Priraďte hodnotu reťazca do premennej $ str1
str1 = "Shell Script"
# Priraďte premennej $ str2 názov premennej „str1“
str2 = str1
# Uložte príkaz do premennej, príkaz $
command = "echo"
Príkaz # 'eval' vykoná príkaz 'echo' a vytlačí hodnotu premennej
ktorý obsahuje v inej premennej
eval $ príkaz \ $ $ str2

Spustite skript.

$ bash evaltest2.š

Vytlačí sa hodnota premennej $ str1.

Existuje iný spôsob prístupu k hodnote premennej, ktorej názov je hodnotou inej premennej. Použitím '!symbol „je možné získať hodnotu tohto typu premennej. Nasledujúci príkaz je možné použiť ako alternatívu k predchádzajúcemu skriptu a výstup bude rovnaký.

$ str1 = "Shell Script"; str2 = str1; command = "echo"; eval $ príkaz $ !str2

Príklad-4: Vytvorte sériu premenných s hodnotami a pomocou príkazu 'eval' vypočítajte súčet hodnôt

Vytvorte bash skript s názvom evaltest3.sh a pridajte nasledujúci skript. Tento skript vytvorí sériu premenných a hodnoty uloží do premenných pomocou príkazu 'eval'. Hodnoty premenných sa sčítajú a uložia do premennej s názvom $ sum. Ďalej je príkaz 'echo' s hodnotami reťazca priradený do premennej, ktorá sa používa v príkaze 'eval' na tlač hodnoty premennej $ sum.

evaltest3.š

#!/ bin / bash
# Inicializujte premennú $ suma na hodnotu 0
súčet = 0
# Deklarujte cyklus for, ktorý bude iterovať štyrikrát
pre n v 1… 4
robiť
# Vytvorte štyri premenné pomocou príkazu eval
eval x $ n = $ n
# Pridajte hodnoty premennej s sumou $
suma = $ (($ suma + $ x $ n))
hotový
# Priraďte príkaz 'echo' s reťazcom do premennej
command = "echo 'Výsledok súčtu ='"
Príkaz # 'eval' vypíše celkovú hodnotu pomocou premenných
eval $ príkaz $ suma

Spustite skript.

$ bash evaltest3.š

Súčet štyroch premenných je 1 + 2 + 3 + 4 = 10, ktoré sa vytlačia.

Príklad-5: Príkazom „eval“ odstránite zoznam súborov

Vytvorte bash súbor s názvom evaltest4.sh s nasledujúcim skriptom. Tento skript načíta tri argumenty príkazového riadku ako názvy súborov, ktoré sa odstránia, a uloží hodnoty argumentov do premennej poľa, $ fn. Príkaz 'rm' je uložený v premennej, príkaz $. Je tu deklarovaná slučka for, aby sa získalo každé meno súboru a odstránil súbor pomocou príkazu 'eval', ak súbor existuje.

evaltest4.š

#!/ bin / bash
# Deklarovať pole
vyhlásiť -A fn
# Prečítajte si tri argumenty príkazového riadku a uložte ich do troch indexov poľa
fn [0] = 1 USD
fn [1] = 2 USD
fn [2] = 3 USD
# Uložte príkaz remove do premennej
príkaz = "rm"
# for bude trikrát iterovať, aby prečítal tri prvky poľa
pre index v 0 1 2
robiť
# Skontrolujte, či súbor existuje alebo neexistuje
if [[-f $ fn [$ index]]]; potom
# ak súbor existuje, odstráňte ho
eval $ príkaz $ fn [$ index]
# Informujte používateľa, že súbor bol odstránený
echo "$ fn [$ index] je odstránené.„
Inak
#Informujte používateľa, že súbor neexistuje
echo "$ fn [$ index] neexistuje.„
fi
hotový

Spustite skript.

$ bash evaltest4.značky sh.položka docx.produkt txt.docx

Tu sú v čase vykonania skriptu poskytnuté tri názvy súborov. Výstup ukazuje, že značky.docx a produkt.docx existujú v aktuálnom umiestnení a súbory sú odstránené a položka.txt v aktuálnom umiestnení neexistuje.

Záver

Akýkoľvek príkaz bash je možné vykonať príkazom 'eval' vyhlásením za reťazec. Príkaz 'eval' sa v tomto výučbe používa na vykonávanie rôznych vstavaných príkazov bash a vytváranie sérií premenných. Používanie príkazu „eval“ bude používateľom vymazané a po prečítaní tohto tutoriálu budú môcť tento príkaz používať na rôzne účely.

Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...