Příkazy pro Linux

Bash eval příkaz

Bash eval příkaz
Příkaz 'eval' se v bash používá k provádění argumentů jako příkaz prostředí. Argumenty jsou spojeny v řetězci a brány jako vstup pro příkaz shellu k provedení příkazu. 'eval' provede příkaz v aktuálním shellu. Tento příkaz je užitečný, když vyžaduje provedení libovolného příkazu, který obsahuje speciální operátor nebo vyhrazená klíčová slova. Tento příkaz lze použít v jakémkoli skriptu i tam, kde je název proměnné neznámý až do provedení skriptu. Tento kurz pomůže uživatelům systému Linux naučit se používat tento příkaz.

Syntax:

eval [argument…]

Zde jsou argumenty analyzovány a kombinovány do řetězce, který provede shell. 'eval' po provedení příkazu vrátí stavový kód ukončení. 'eval' vrací 0 jako stavový kód ukončení, pokud není zadán žádný argument nebo je zadán pouze nulový argument.

Příklad-1: Proveďte příkaz 'wc' pomocí 'eval'

Předpokládejme textový soubor s názvem „oddělení.txt”Obsahuje následující text. Celkový počet řádků souboru lze spočítat pomocí příkazu 'wc'.

oddělení.txt

CSE
EEE
ETE
ANGLIČTINA
BBA
LÉKÁRNA

Následující příkaz uloží příkaz 'wc', který spočítá celkový počet řádků souboru, oddělení.txt do proměnné, $ můj příkaz.

$ mycommand = "wc -l oddělení.txt "

Následující příkaz 'eval' spustí příkaz 'wc' a vytiskne celkový počet řádků.

$ eval $ můj příkaz

Výstup:

Výstup ukazuje, že oddělení.txt soubor má 6 řádků.

Examplel-2: Proveďte příkaz 'expr' pomocí 'eval'

Vytvořte soubor bash s názvem evaltest.sh a přidejte následující skript. Tento skript přiřadí dvě celočíselné hodnoty do proměnných $ x a $ y. Příkazy 'expr' a 'echo' jsou přiřazeny do dvou proměnných, $ c1 a $ c2, které jsou provedeny později pomocí příkazu 'eval'.

evaltest.sh

#!/ bin / bash
# Inicializujte proměnné xay
x = 5
y = 15
# První proměnná příkazu se používá k přiřazení příkazu 'expr' k přidání hodnot $ x a $ y
c1 = "'expr $ x + $ y'"
# Druhá proměnná příkazu se používá k přiřazení příkazu 'echo'
c2 = "echo"
# 'eval' spočítá a vytiskne součet $ x a $ y provedením příkazů $ c1
a $ c2 proměnné
eval $ c2 $ c1

Spusťte skript.

$ bash evaltest.sh

Součet 5 a 15 je 20, který se zobrazuje na výstupu.

Příklad-3: Tisk hodnoty proměnné, která je přiřazena k jiné proměnné

Vytvořte bash skript s názvem evaltest2.sh s následujícím skriptem. Zde se jedna proměnná používá k přiřazení názvu jiné proměnné, která obsahuje data řetězce. Příkaz 'eval' vytiskne hodnotu proměnné, která obsahuje název jiné proměnné, jako obsah.

evaltest2.sh

#!/ bin / bash
# Přiřaďte hodnotu řetězce do proměnné $ str1
str1 = "Shell Script"
# Přiřaďte proměnné $ str2 název proměnné „str1“
str2 = str1
# Uložte příkaz do proměnné, příkaz $
command = "echo"
Příkaz # 'eval' provede příkaz 'echo' a vytiskne hodnotu proměnné
který obsahuje v jiné proměnné
eval $ příkaz \ $ $ str2

Spusťte skript.

$ bash evaltest2.sh

Je vytištěna hodnota proměnné $ str1.

Existuje další způsob přístupu k hodnotě proměnné, jejíž název je hodnotou jiné proměnné. Použitím '!'symbol je hodnota tohoto typu proměnné přístupná. Následující příkaz lze použít jako alternativu k předchozímu skriptu a výstup bude stejný.

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

Příklad 4: Vytvořte řadu proměnných s hodnotami a pomocí příkazu 'eval' vypočítejte součet hodnot

Vytvořte bash skript s názvem evaltest3.sh a přidejte následující skript. Tento skript vytvoří řadu proměnných a uloží hodnoty do proměnných pomocí příkazu 'eval'. Hodnoty proměnných budou přidány a uloženy do proměnné s názvem $ sum. Dále je příkaz 'echo' s řetězcovými hodnotami přiřazen do proměnné, která se používá v příkazu 'eval' k tisku hodnoty proměnné $ sum.

evaltest3.sh

#!/ bin / bash
# Inicializujte proměnnou $ sum s hodnotou 0
součet = 0
# Deklarujte smyčku for, která bude 4krát iterovat
pro n v 1… 4
dělat
# Vytvořte čtyři proměnné pomocí příkazu eval
eval x $ n = $ n
# Přidejte hodnoty proměnné s $ sum
součet = $ (($ součet + $ x $ n))
Hotovo
# Přiřaďte příkaz 'echo' pomocí řetězce do proměnné
command = "echo 'Výsledek součtu ='"
Příkaz # 'eval' vytiskne hodnotu součtu pomocí proměnných
eval $ příkaz $ součet

Spusťte skript.

$ bash evaltest3.sh

Součet čtyř proměnných je 1 + 2 + 3 + 4 = 10, které se vytisknou.

Příklad-5: Pomocí příkazu 'eval' odstraníte seznam souborů

Vytvořte soubor bash s názvem evaltest4.sh s následujícím skriptem. Tento skript načte tři argumenty příkazového řádku jako názvy souborů, které budou odstraněny, a uloží hodnoty argumentů do proměnné pole, $ fn. Příkaz 'rm' je uložen v proměnné, příkaz $. Zde je deklarována smyčka pro načtení každého názvu souboru a odstranění souboru pomocí příkazu 'eval', pokud soubor existuje.

evaltest4.sh

#!/ bin / bash
# Deklarovat pole
prohlásit -A fn
# Přečtěte si tři argumenty příkazového řádku a uložte je do tří indexů pole
fn [0] = 1 $
fn [1] = 2 USD
fn [2] = 3 USD
# Uložte příkaz remove do proměnné
command = "rm"
# smyčka bude třikrát iterovat, aby přečetla tři prvky pole
pro index v 0 1 2
dělat
# Zkontrolujte, zda soubor existuje nebo neexistuje
if [[-f $ fn [$ index]]]; pak
# pokud soubor existuje, odeberte jej
eval $ příkaz $ fn [$ index]
# Informovat uživatele, že soubor byl odstraněn
echo "$ fn [$ index] je smazáno."
Jiný
# Informujte uživatele, že soubor neexistuje
echo "$ fn [$ index] neexistuje."
fi
Hotovo

Spusťte skript.

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

Zde jsou v době provádění skriptu uvedeny tři názvy souborů. Výstup ukazuje, že značky.docx a produkt.docx existují v aktuálním umístění a soubory jsou odstraněny a položka.txt v aktuálním umístění neexistuje.

Závěr

Jakýkoli příkaz bash lze provést příkazem 'eval' deklarováním jako řetězec. V tomto výukovém programu se používá příkaz 'eval' pro provádění různých integrovaných příkazů bash a vytváření řady proměnných. Použití příkazu 'eval' bude uživatelům vymazáno a po přečtení tohoto tutoriálu budou moci tento příkaz používat k různým účelům.

Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...
Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...