Linux-Befehle

Bash-Auswertungsbefehl

Bash-Auswertungsbefehl
Der Befehl 'eval' wird in der Bash verwendet, um Argumente wie einen Shell-Befehl auszuführen. Argumente werden in einer Zeichenfolge verbunden und als Eingabe für den Shell-Befehl verwendet, um den Befehl auszuführen. 'eval' führt den Befehl in der aktuellen Shell aus. Dieser Befehl ist nützlich, wenn ein Befehl ausgeführt werden muss, der einen speziellen Operator oder reservierte Schlüsselwörter enthält. Dieser Befehl kann in jedem Skript verwendet werden, auch wenn der Variablenname bis zur Ausführung des Skripts unbekannt ist. Dieses Tutorial wird Linux-Benutzern helfen, die Verwendung dieses Befehls zu lernen.

Syntax:

bewerten [Argument…]

Hier werden Argumente geparst und zu einem String kombiniert, der von der Shell ausgeführt wird. 'eval' gibt nach Ausführung des Befehls einen Exit-Statuscode zurück. 'eval' gibt 0 als Exit-Statuscode zurück, wenn kein Argument oder nur ein Nullargument angegeben wird.

Beispiel-1: Führen Sie den Befehl 'wc' mit 'eval' aus

Angenommen, eine Textdatei mit dem Namen „Abteilung.TXT” enthält den folgenden Text. Die Gesamtzahl der Zeilen der Datei kann mit dem Befehl 'wc' gezählt werden.

Abteilung.TXT

CSE
EEE
ETE
ENGLISCH
BBA
APOTHEKE

Der folgende Befehl speichert den Befehl 'wc', um die Gesamtzahl der Zeilen der Datei zu zählen, Abteilung.TXT zur Variablen, $mycommand.

$ mycommand="wc -l Abteilung.TXT"

Der folgende 'eval'-Befehl führt den 'wc'-Befehl aus und gibt die Gesamtzahl der Zeilen aus.

$ eval $mycommand

Ausgabe:

Die Ausgabe zeigt, dass Abteilung.TXT Datei hat 6 Zeilen.

Beispiel-2: Führen Sie den Befehl 'expr' mit 'eval' aus

Erstellen Sie eine Bash-Datei mit dem Namen evaluieren.Sch und füge das folgende Skript hinzu. Dieses Skript weist den Variablen $x und $y zwei ganzzahlige Werte zu. Die Befehle 'expr' und 'echo' werden zwei Variablen zugewiesen, $c1 und $c2, die später mit dem Befehl 'eval' ausgeführt werden.

evaluieren.Sch

#!/bin/bash
#Initialisiere die Variablen x und y
x=5
y=15
#Die erste Befehlsvariable wird verwendet, um den Befehl 'expr' zuzuweisen, um die Werte von $x und $y zu addieren
c1="'Ausdruck $x + $y'"
#Die zweite Befehlsvariable wird verwendet, um den Befehl 'echo' zuzuweisen
c2="Echo"
#'eval' berechnet und gibt die Summe von $x und $y aus, indem die Befehle von $c1 ausgeführt werden
und $c2-Variablen
Bewertung $c2 $c1

Führen Sie das Skript aus.

$ bash evaltest.Sch

Die Summe von 5 und 15 ist 20, die in der Ausgabe angezeigt wird.

Beispiel-3: Geben Sie den Wert einer Variablen aus, die einer anderen Variablen zugewiesen ist

Erstellen Sie ein Bash-Skript namens evaltest2.sh mit folgendem Skript. Hier wird eine Variable verwendet, um den Namen einer anderen Variablen zuzuweisen, die einen String data enthält. Der Befehl 'eval' gibt den Wert der Variablen aus, die den Namen einer anderen Variablen als Inhalt enthält.

evaltest2.Sch

#!/bin/bash
# Weisen Sie der Variablen einen Zeichenfolgenwert zu, $str1
str1="Shell-Skript"
# Weisen Sie der Variablen $str2 den Variablennamen „str1“ zu
str2=str1
#Speichern Sie den Befehl in der Variablen $command
befehl="echo"
# Der Befehl 'eval' führt den Befehl 'echo' aus und gibt den Wert der Variablen aus
das enthält in einer anderen Variablen
eval $Befehl \$$str2

Führen Sie das Skript aus.

$ bash evaltest2.Sch

Der Wert der Variablen $str1 wird ausgegeben.

Es gibt eine andere Möglichkeit, auf den Wert einer Variablen zuzugreifen, deren Name der Wert einer anderen Variablen ist. Verwenden von '!' Symbol auf den Wert dieser Variablenart zugegriffen werden kann. Der folgende Befehl kann als Alternative zum vorherigen Skript verwendet werden und die Ausgabe ist dieselbe.

$ str1="Shell-Skript"; str2=str1; command="echo"; eval $Befehl $!str2

Beispiel-4: Erstellen Sie eine Reihe von Variablen mit Werten und berechnen Sie die Summe der Werte mit dem Befehl 'eval'

Erstellen Sie ein Bash-Skript namens evaltest3.sh und füge das folgende Skript hinzu. Dieses Skript erstellt eine Reihe von Variablen und speichert die Werte mit dem Befehl 'eval' in den Variablen. Die Werte der Variablen werden addiert und in einer Variablen namens $sum . gespeichert. Als nächstes wird der 'echo'-Befehl mit String-Werten einer Variablen zugewiesen, die im 'eval'-Befehl verwendet wird, um den Wert der $sum-Variablen auszugeben.

evaltest3.Sch

#!/bin/bash
# Initialisiere die Variable $sum mit dem Wert 0
Summe=0
# Deklarieren Sie eine for-Schleife, die viermal wiederholt wird
für n in 1… 4
tun
# Erstellen Sie vier Variablen mit dem Befehl eval
Bewertung x$n=$n
# Addiere die Werte der Variablen mit $sum
Summe=$(($Summe+$x$n))
getan
# Weisen Sie den Befehl 'echo' mit einer Zeichenfolge in eine Variable zu
command="echo 'Das Ergebnis der Summe='"
# 'eval'-Befehl druckt den Summenwert mit Variablen
eval $Befehl $sum

Führen Sie das Skript aus.

$ bash evaltest3.Sch

Die Summe der vier Variablen ist 1+2+3+4=10, die gedruckt wird.

Beispiel-5: Verwenden des Befehls 'eval' zum Entfernen der Dateiliste

Erstellen Sie eine Bash-Datei namens evaltest4.sh mit folgendem Skript. Dieses Skript liest drei Befehlszeilenargumente als Dateinamen, die entfernt werden, und speichert die Argumentwerte in einer Array-Variablen, $fn. Der Befehl 'rm' wird in einer Variablen gespeichert, $command. Die For-Schleife wird hier deklariert, um jeden Dateinamen abzurufen und die Datei mit dem Befehl 'eval' zu entfernen, wenn die Datei vorhanden ist.

evaltest4.Sch

#!/bin/bash
#Ein Array deklarieren
erkläre -A fn
# Drei Befehlszeilenargumente lesen und in drei Indizes des Arrays speichern
fn[0]=$1
fn[1]=$2
fn[2]=$3
# Speichern Sie den Befehl zum Entfernen in einer Variablen
Befehl="rm"
# for-Schleife wird dreimal durchlaufen, um drei Array-Elemente zu lesen
für Index in 0 1 2
tun
# Überprüfen Sie, ob die Datei existiert oder nicht existiert
if [[ -f $fn[$index] ]]; dann
# wenn die Datei existiert, dann entfernen Sie die Datei
eval $Befehl $fn[$index]
# Informieren Sie den Benutzer, dass die Datei entfernt wurde
echo "$fn[$index] wurde gelöscht."
Sonst
#Informiere den Benutzer, dass die Datei nicht existiert
echo "$fn[$index] existiert nicht."
fi
getan

Führen Sie das Skript aus.

$ bash evaltest4.sh markiert.docx-Element.txt-Produkt.docx

Hier werden zum Zeitpunkt der Ausführung des Skripts drei Dateinamen bereitgestellt. Die Ausgabe zeigt, dass Markierungen.docx und Produkt.docx am aktuellen Speicherort vorhanden und die Dateien werden entfernt und, item.txt existiert am aktuellen Speicherort nicht.

Fazit

Jeder Bash-Befehl kann durch den 'eval'-Befehl ausgeführt werden, indem er als String deklariert wird. Der Befehl 'eval' wird in diesem Tutorial verwendet, um verschiedene integrierte Befehle von bash auszuführen und eine Reihe von Variablen zu erstellen. Die Verwendung des 'eval'-Befehls wird für die Benutzer freigegeben und sie können diesen Befehl nach dem Lesen dieses Tutorials für verschiedene Zwecke verwenden.

So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...