Der eval-Befehl im Bash-Skript
In diesem Artikel geht es um die Verwendung von Strings als Befehl in einem Bash-Skript. Dazu wird der Befehl eval
verwendet.
Eval-Befehl im Bash-Skript
Es gibt bestimmte Bash-Skripte, bei denen Sie beispielsweise mithilfe von Variablen oder Eingabewerten eine Zeichenfolge erstellen und am Ende als Befehl ausführen müssen. Für solche Fälle ist eval
die Lösung.
In Bash wertet der Befehl eval
Parameter ähnlich wie ein Shell-Befehl aus. Argumente werden zu einem String kombiniert und an den Shell-Befehl gesendet, der dann den Befehl ausführt.
In der aktuellen Shell führt eval
den Befehl aus. Dieser Befehl ist praktisch, wenn Sie einen Befehl mit einem bestimmten Operator oder reservierten Begriffen ausführen.
Dieser Befehl kann auch in jedem Skript verwendet werden, in dem der Variablenname nicht bekannt ist, bis das Skript ausgeführt wird. Dieses Handbuch hilft Linux-Benutzern dabei, die Verwendung dieses Befehls zu verstehen.
Syntax:
eval [arguments...]
Die Argumente
werden diesem Befehl kombiniert als String-Literal übergeben und dann zur Ausführung an Bash gesendet. Dieser Befehl gibt den Exit-Status nach der Ausführung des Befehls zurück.
Wenn diesem Befehl keine Argumente übergeben werden oder null
übergeben wird, gibt er 0
als Exit-Status zurück.
Zählen Sie die Anzahl der Zeilen in einer Datei mit eval
Angenommen, wir haben eine Datei sample.txt
, die einige Textzeilen enthält. Wenn wir die Anzahl der Zeilen in dieser Datei zählen müssen, können wir den Befehl wc -l
verwenden.
Wir werden diese Aufgabe mit dem Befehl eval
ausführen. Der Befehl lautet:
myComm="wc -l sample.txt"
eval $myComm
Schauen wir uns die Ausgabe davon an.
Arithmetische Operation mit eval
lösen
Angenommen, wir müssen einige arithmetische Operationen ausführen. Wir können dies mit dem Befehl eval
tun.
Zu diesem Zweck erstellen wir ein Bash-Skript.
#!/bin/bash
a=4
b=5
comm1="`expr $a + $b`"
comm2="echo"
eval $comm2 $comm1
In diesem Skript haben wir zwei Variablen erstellt, die zwei Befehle enthalten, einen für die Durchführung von arithmetischen Operationen und den anderen für einen echo
-Befehl. In der letzten Zeile haben wir diese beiden Variablen als Argumente an den eval
-Befehl übergeben.
eval
kombiniert diese beiden Variablen und erstellt einen Befehl wie den folgenden.
echo 'expr 4 + 5'
Nach der Ausführung dieses Skripts erhalten wir die folgende Ausgabe.
Drucken Sie die Werte von Variablen mit eval
Im folgenden Beispiel drucken wir den Wert einer Variablen, die eine andere Variable enthält.
#!/bin/bash
str1="my script"
str2=str1
comm="echo"
eval $comm \${$str2}
Die Ausgabe des obigen Skripts lautet:
Drucken Sie die Summe der Zahlen mit eval
Im folgenden Beispiel drucken wir die Summe der Zahlen von 1 bis 4 mit einer for
-Schleife im Skript. Dann drucken wir diese Summe mit dem Befehl eval
.
Das Skript für dieses Problem lautet:
#!/bin/bash
sum=0
for n in {1..4}
do
sum=$(($sum+$n))
done
comm="echo 'The result of sum from 1-4 is: '"
eval $comm $sum
Die Ausgabe des obigen Skripts lautet:
Abschluss
Der Befehl eval
kann ausgeführt werden, indem jeder Bash-Befehl als Zeichenfolge ausgedrückt wird. In dieser Lektion führt der Befehl eval
mehrere in Bash integrierte Aufgaben aus und erstellt eine Folge von Variablen.
Nach dem Lesen dieser Lektion werden die Benutzer den Befehl eval
besser verstehen und in der Lage sein, ihn für eine Vielzahl von Anwendungen zu verwenden.
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn