Linux parancsok

Bash eval parancs

Bash eval parancs
Az 'eval' parancsot a bash-ban használják argumentumok végrehajtására, mint egy shell parancs. Az argumentumokat egy karaktersorozatba kapcsolják, és a parancs végrehajtásához a shell parancs bemenetének veszik. Az 'eval' végrehajtja a parancsot az aktuális shellben. Ez a parancs akkor hasznos, ha olyan parancs végrehajtására van szükség, amely speciális operátort vagy lefoglalt kulcsszavakat tartalmaz. Ez a parancs bármilyen parancsfájlban használható, ahol a változó neve a parancsfájl végrehajtásáig ismeretlen. Ez az oktatóanyag segít a Linux felhasználóknak megtanulni a parancs használatát.

Szintaxis:

eval [érv…]

Itt az argumentumok elemzésre kerülnek, és egyesülnek egy karaktersorozatba, amelyet a shell hajt végre. Az 'eval' a parancs végrehajtása után visszatérési állapotkódot ad vissza. Az 'eval' 0-t ad meg kilépési állapotkódként, ha nem ad meg argumentumot, vagy csak null argumentumot ad meg.

1. példa: A „wc” parancs végrehajtása az „eval” használatával

Tegyük fel, hogy egy „osztály.txt”A következő szöveget tartalmazza. A fájl sorainak teljes számát a 'wc' paranccsal lehet megszámolni.

osztály.txt

Egyéni keresőmotor
EEE
ETE
ANGOL
BBA
GYÓGYSZERTÁR

A következő parancs a 'wc' parancsot tárolja a fájl teljes sorainak számlálásához, osztály.txt a változóhoz, $ mycommand.

$ mycommand = "wc -l osztály.txt "

A következő 'eval' parancs futtatja a 'wc' parancsot, és kinyomtatja a sorok teljes számát.

$ eval $ mycommand

Kimenet:

A kimenet ezt mutatja osztály.txt fájl 6 soros.

Examplel-2: Hajtsa végre az 'expr' parancsot az 'eval' használatával

Hozzon létre egy bash fájlt evaltest.SH és adja hozzá a következő szkriptet. Ez a szkript két egész értéket fog rendelni a $ x és $ y változóhoz. Az 'expr' és az 'echo' parancsok két változóhoz vannak rendelve: $ c1 és $ c2, amelyeket később az 'eval' paranccsal hajtanak végre.

evaltest.SH

#!/ bin / bash
# Inicializálja az x és y változót
x = 5
y = 15
# Az első parancs változó az 'expr' parancs hozzárendelésére szolgál az $ x és $ y értékek hozzáadásához
c1 = "'expr $ x + $ y'"
#A második parancs változó az 'echo' parancs hozzárendelésére szolgál
c2 = "visszhang"
Az # 'eval' kiszámítja és kinyomtatja $ x és $ y összegét a $ c1 parancsainak végrehajtásával
és $ c2 változók
eval $ c2 $ c1

Futtassa a szkriptet.

$ bash evaltest.SH

5 és 15 összege 20, amely a kimeneten látható.

3. példa: Nyomtassa ki egy másik változóhoz rendelt változó értékét

Hozzon létre egy evaltest2 nevű bash szkriptet.sh a következő szkript segítségével. Itt az egyik változó egy másik változó nevének hozzárendelésére szolgál, amely string adatokat tartalmaz. Az 'eval' parancs kinyomtatja annak a változónak az értékét, amely tartalomként tartalmazza egy másik változó nevét.

evaltest2.SH

#!/ bin / bash
# Rendeljen egy string értéket a $ str1 változóhoz
str1 = "Shell szkript"
# Rendelje hozzá az „str1” változó nevét az $ str2 változóhoz
str2 = str1
# Tárolja a parancsot a $ parancs változóba
parancs = "visszhang"
A # 'eval' parancs végrehajtja az 'echo' parancsot, és kinyomtatja a változó értékét
amely egy másik változóban tartalmaz
eval $ parancs \ $ $ str2

Futtassa a szkriptet.

$ bash evaltest2.SH

A $ str1 változó értéke ki van nyomtatva.

Van egy másik módszer a változó értékének elérésére, amely név egy másik változó értéke. A 'használata!'szimbólum az ilyen típusú változó értéke elérhető. A következő parancs használható az előző parancsfájl alternatívájaként, és a kimenet ugyanaz lesz.

$ str1 = "Shell szkript"; str2 = str1; parancs = "visszhang"; eval $ command $ !str2

4. példa: Hozzon létre egy változósort értékekkel, és az 'eval' paranccsal számítsa ki az értékek összegét

Hozzon létre egy evaltest3 nevű bash szkriptet.sh, és adja hozzá a következő szkriptet. Ez a szkript egy sor változót hoz létre, és az 'eval' paranccsal tárolja az értékeket a változókban. A változók értékeit hozzáadjuk és egy $ sum nevű változóba tároljuk. Ezután az 'echo' parancs karaktersorozattal rendelhető hozzá egy változóhoz, amelyet az 'eval' parancs használ a $ sum változó értékének kinyomtatására.

evaltest3.SH

#!/ bin / bash
# Inicializálja a $ sum változót 0 értékkel
összeg = 0
# Nyújtson be egy for ciklust, amely négyszer fog ismétlődni
n esetén 1… 4
csinálni
# Hozzon létre négy változót az eval paranccsal
eval x $ n = $ n
# Adja hozzá a változó értékeit $ összeggel
összeg = $ (($ összeg + $ x $ n))
Kész
# Rendelje hozzá az 'echo' parancsot stringgel egy változóba
command = "echo 'Az összeg ='" eredménye
A # 'eval' paranccsal az összeg értékét változók segítségével nyomtathatja ki
eval $ parancs $ sum

Futtassa a szkriptet.

$ bash evaltest3.SH

A négy változó összege: 1 + 2 + 3 + 4 = 10, amely ki van nyomtatva.

5. példa: Az 'eval' paranccsal eltávolíthatja a fájlokat

Hozzon létre egy evaltest4 nevű bash fájlt.sh a következő szkript segítségével. Ez a szkript három parancssori argumentumot olvashat el fájlnévként, amelyeket eltávolít, és az argumentumértékeket egy tömb változóba, az $ fn tárolja. Az 'rm' parancs egy $ változóban van tárolva. Mert a ciklus itt van deklarálva, hogy minden fájlnév beolvasásra kerül, és az 'eval' paranccsal távolítsa el a fájlt, ha a fájl létezik.

evaltest4.SH

#!/ bin / bash
# Nyújtson be egy tömböt
kijelenti -A fn
# Olvasson el három parancssori argumentumot, és tárolja a tömb három indexébe
fn [0] = 1 USD
fn [1] = 2 USD
fn [2] = 3 USD
# Tárolja az remove parancsot egy változóba
parancs = "rm"
A # for ciklus háromszor fog ismételni három tömb elem elolvasása érdekében
indexhez a 0 1 2-ben
csinálni
# Ellenőrizze, hogy a fájl létezik-e vagy sem
ha [[-f $ fn [$ index]]]; azután
# ha a fájl létezik, akkor távolítsa el a fájlt
eval $ parancs $ fn [$ index]
# Tájékoztassa a felhasználót a fájl eltávolításáról
echo "$ fn [$ index] törölve."
Más
# Tájékoztassa a felhasználót, hogy a fájl nem létezik
echo "$ fn [$ index] nem létezik."
fi
Kész

Futtassa a szkriptet.

$ bash evaltest4.sh jelek.docx elem.txt termék.docx

Itt három fájlnév van megadva a szkript futtatásakor. A kimenet azt jelzi.docx és termék.A docx létezik az aktuális helyen, és a fájlok eltávolításra kerülnek, és.A txt nem létezik az aktuális helyen.

Következtetés

Bármely bash parancs végrehajtható az 'eval' paranccsal, stringként deklarálva. Az 'eval' parancsot ebben az oktatóanyagban a bash különböző beépített parancsainak végrehajtására és változó-sorozat létrehozására használják. Az 'eval' parancs használatát töröljük a felhasználók számára, és az oktatóanyag elolvasása után különböző célokra használhatják ezt a parancsot.

Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...
A WinMouse segítségével testre szabhatja és javíthatja az egérmutató mozgását a Windows PC-n
Ha szeretné javítani az egérmutató alapértelmezett funkcióit, használjon ingyenes programokat WinMouse. További funkciókat kínál, amelyek segítenek ab...
Az egér bal oldali gombja nem működik a Windows 10 rendszeren
Ha dedikált egeret használ laptopjával vagy asztali számítógépével, de a az egér bal gombja nem működik a Windows 10/8/7 rendszeren valamilyen oknál f...