Auswertung von Ausdrücken in Linux mit expr
Linux
2024-02-05T13:00:14Z
Schnelle Links
Wichtigste Erkenntnisse
- Der Befehl expr kann Ausdrücke auswerten und den entsprechenden Wert ausgeben. Mit ihm können Sie arithmetische Berechnungen, Vergleiche und String-Operationen durchführen.
- Mit dem Befehl expr können Sie nach bestimmten Mustern im Text suchen, Benutzereingaben überprüfen und sogar Text auf der Grundlage definierter Muster ersetzen.
- Der expr-Befehl kann auch Zeichenketten mit Hilfe von Zeichenkettenfunktionen manipulieren, z. B. die Länge ermitteln, Zeichenketten vergleichen und Teilzeichenfolgen extrahieren.
Sie möchten einfache Berechnungen in Linux durchführen? Verwenden Sie einfach den Befehl expr. Mit diesem Befehl können Sie verschiedene Operationen durchführen, z. B. Ausdrücke auswerten, Teilzeichenketten extrahieren, Zeichenketten vergleichen und vieles mehr. Mit expr können Sie zwei Zahlen addieren, subtrahieren, multiplizieren oder dividieren und erhalten die Antwort als Ausgabe.
Der expr-Befehl
expr ist ein Werkzeug, das auf der Grundlage von Ausdrücken, die Sie angeben, Berechnungen durchführen und Zeichenketten manipulieren kann. Mit dem Befehl expr können Sie verschiedene Operationen mit ganzen Zahlen und Zeichenketten durchführen, z. B. Werte vergleichen oder mit regulären Ausdrücken nach bestimmten Mustern suchen.
Sie können mehrere Ausdrücke als Argumente an expr übergeben, die durch Leerzeichen getrennt sind. Er wertet nicht nur einen Ausdruck aus, sondern zeigt auch die entsprechende Ausgabe auf dem Terminal an. Der Befehl expr funktioniert sowohl im Bash-Terminal als auch in Shell-Skripten.
Der Befehl expr ist praktisch, wenn Sie Daten manipulieren oder Berechnungen durchführen wollen, ohne das Terminal zu verlassen. Allerdings müssen Sie auf die Syntax und die Reihenfolge der Ausdrücke achten, da der Befehl sonst fehlschlägt und eine Fehlermeldung ausgibt.
Die Syntax des Befehls expr lautet:
expr Ausdruck
... wobei der Ausdruck eine Kombination aus Argumenten und Operatoren sein kann. Der unten stehende Ausdruck wertet zum Beispiel die Operation zwischen arg1 und arg2 aus und gibt das Ergebnis aus:
expr arg1 Operator arg2
Die Argumente können Zahlen oder Zeichenketten sein, je nach Operator. Die Operatoren können arithmetisch, relational, stringbezogen oder logisch sein. Es ist das Symbol, das die auszuführende Operation angibt. Für ganze Zahlen können Sie zum Beispiel Operatoren wie , -, *, / und % verwenden.
Für Zeichenketten können Sie reguläre Ausdrücke und Zeichensätze verwenden, um Übereinstimmungen und Indizes zu finden. Sie können auch Klammern verwenden, um Ausdrücke zu gruppieren, und Backslashes, um Sonderzeichen zu vermeiden.
expr Befehlsoptionen
Expr verfügt zwar nicht über traditionelle Befehlszeilenoptionen, bietet aber vielseitige Operatoren für Arithmetik, Stringmanipulation und Vergleiche. Außerdem können Sie die Option --help option, um die Hilfeseite von expr anzuzeigen, die die Syntax, die Funktionen und die Beispiele erklärt:
expr --help
Um die Version des Befehls expr zu überprüfen, führe aus:
expr --version
Diese Option zeigt die Versionsnummer, den Quellcode, die Lizenz und den Autor von expr an.
Durchführen von arithmetischen Operationen mit expr
Um den Befehl expr für grundlegende arithmetische Operationen zu verwenden, schreiben Sie den Befehl expr gefolgt von einem Leerzeichen. Schreiben Sie dann den Ausdruck, den Sie auswerten wollen. Dieser Ausdruck ist eine Kombination aus ganzen Zahlen und Operatoren wie , -, * und /. Stellen Sie sicher, dass Sie jedes Token (ganze Zahl oder Operator) im Ausdruck durch ein Leerzeichen trennen.
Wenn Sie zum Beispiel die Summe von 15 und 12 mit expr ermitteln wollen, können Sie schreiben:
expr 15 12
In ähnlicher Weise können Sie mit dem Befehl expr auch andere arithmetische Operationen wie Subtraktion, Multiplikation und Division durchführen. Lassen Sie uns einige Ausdrücke mit dem Befehl expr auswerten:
expr 15 - 12
expr 15 /* 5
expr 10 / 2
Sie müssen den Multiplikationsoperator (*) mit einem Backslash (/) abschließen, um die Shell-Expansion zu vermeiden. Andernfalls wird die Shell versuchen, den Operator (*) mit den Dateinamen im aktuellen Verzeichnis abzugleichen und an den expr-Befehl weiterzugeben, was zu einem Fehler führen wird.
Sie können auch verhindern, dass die Shell die Zeichen interpretiert, indem Sie die Argumente und Operatoren richtig in Anführungszeichen setzen:
expr "5" "*" "3"
Vergleich von zwei Ausdrücken mit expr
Um zwei Ausdrücke mit dem Befehl expr zu vergleichen, können Sie logische Operatoren wie =, <, > und != verwenden. Wenn der Befehl den Wert 1 ausgibt, ist die Bedingung erfüllt, andernfalls ist sie falsch, und der zurückgegebene Wert ist Null.
Um beispielsweise zu prüfen, ob das erste Argument gleich dem zweiten Argument ist, verwenden wir den Operator =:
expr 40 = 50
Prüfen wir nun, ob das erste Argument kleiner ist als das andere Argument. Dazu verwenden wir den Operator <:
expr 40 /< 50
Sie können auch prüfen, ob die Werte nicht gleich sind. Dazu verwenden Sie einfach den Operator != zwischen den Werten der beiden Argumente:
expr 45 /!= 55
Hier zeigt die Ausgabe 1 an, dass 45 nicht gleich 55 ist.
Auf diese Weise bietet der expr-Befehl eine einfache und effektive Methode, um numerische Werte zu vergleichen.
Wie der Multiplikationsoperator (*) müssen auch die Operatoren <, > und != mit einem Backslash (/) versehen werden. Andernfalls können sie von der Shell als Sonderzeichen interpretiert werden.
Ermitteln der Länge einer Zeichenkette mit expr
Um die Länge einer Zeichenkette mit dem Befehl expr zu ermitteln, können Sie die Methode length verwenden. Dieser Operator gibt die Anzahl der Zeichen in der gegebenen Zeichenkette an die Ausgabe zurück.
Um zum Beispiel die Länge der Zeichenkette 'How To Geek' zu ermitteln, führen Sie diesen Befehl aus:
expr length 'How To Geek'
Die Ausgabe ist 11, da die Zeichenkette neun Zeichen und zwei Leerzeichen enthält. Wenn Sie die Länge einer Zeichenkette ohne Leerzeichen ermitteln wollen, können Sie andere Befehle wie tr oder awk verwenden, um diese zu entfernen. Ein Beispiel:
expr length "$(echo 'How To Geek' | tr -d ' ')"
Die Ausgabe ist neun, da der Befehl tr alle Leerzeichen in der Zeichenkette löscht, bevor er sie an den Befehl expr length weitergibt.
Zwei Zeichenketten mit expr abgleichen
Eine der Operationen, die expr anbietet, ist der Vergleich von zwei Zeichenketten. Verwenden Sie dazu den Operator Doppelpunkt (:) mit dem Befehl expr. Dieser Operator gibt die Anzahl der übereinstimmenden Zeichen am Anfang der beiden Zeichenketten zurück.
Die Syntax für die Verwendung dieses Operators lautet:
expr Zeichenfolge1 : Zeichenfolge2
Er vergleicht die beiden Zeichenketten und gibt die Anzahl der übereinstimmenden Zeichen ab dem Anfang der Zeichenkette zurück.
Der folgende Befehl gibt zum Beispiel fünf aus, da beide Zeichenfolgen die ersten fünf Zeichen gemeinsam haben:
expr 'HowToGeek' : 'HowTo'
Betrachten wir ein anderes Beispiel, bei dem zwei gegebene Zeichenketten gleich sind:
expr 'How To Geek' : 'How To Geek'
Die Ausgabe ist 11, da beide Zeichenketten alle Zeichen gemeinsam haben, einschließlich der Leerzeichen.
Wenn kein übereinstimmendes Zeichen vorhanden ist, ist die Ausgabe Null:
expr 'How To Geek' : 'Linux'
Inkrementieren und Dekrementieren einer Variablen mit expr
Der Befehl expr kann auch einen Ausdruck auswerten, der den Wert einer Variablen erhöht oder verringert. Außerdem können Sie das Ergebnis einer neuen Variablen zuweisen.
Im folgenden Beispiel haben wir eine Variable "a" definiert und ihren Wert mit dem Befehl expr inkrementiert:
a=20
a=`expr $a 1`
echo $a
Um den Wert der Variablen zu dekrementieren, verwenden Sie die gleiche Syntax, ersetzen aber das Additionszeichen durch eine Subtraktion:
a=20
a=`expr $a - 1`
echo $a
Extrahieren einer Teilzeichenkette mit expr
Um eine Teilzeichenkette aus einer gegebenen Zeichenkette zu extrahieren, können Sie den Befehl expr mit einem substr-Operator verwenden. Auf diese Weise können Sie bestimmte Informationen aus einem größeren Text extrahieren, z. B. einen Namen, ein Datum oder einen beliebigen Code. Sie können diesen Operator auch verwenden, um unerwünschte Zeichen oder Leerzeichen aus einer Zeichenkette zu entfernen.
Betrachten Sie die folgenden Beispielbefehle, bei denen eine neue Zeichenkette initialisiert wird. Danach werden mit dem Befehl expr die zweiten bis fünften Zeichen aus der Zeichenkette "HowToGeek" entfernt:
a=HowToGeek
b=`expr substr $a 2 5`
echo $b
Durchführen von expr-Operationen mit einem Shell-Skript
Um die Verarbeitung von Ausdrücken mit dem Befehl expr zu automatisieren, können Sie ein eigenes Shell-Skript erstellen. Shell-Skripte sind Mehrzweckwerkzeuge, mit denen Sie mit weniger Aufwand mehr erreichen können. Mit Shell-Skripten können Sie sich wiederholende Aufgaben automatisieren, Daten manipulieren und komplexe Berechnungen durchführen.
Mit dem Befehl expr können Sie beispielsweise ein Skript zum Addieren zweier Zahlen erstellen. Zunächst müssen Sie eine Datei mit der Erweiterung ".sh" erstellen, z. B. "my_script.sh". Dadurch weiß die Shell, dass es sich um eine Skriptdatei handelt. Als nächstes müssen Sie einen Code schreiben, der zwei Zahlen als Eingabe akzeptiert und deren Summe ausgibt. Hier ist ein Beispielskript, das das kann:
echo "Geben Sie zwei Zahlen ein"
read a
read b
sum=`expr $a $b`
echo "Summe der beiden Zahlen ist= $sum"
Dieses Skript verwendet den Befehl expr, um arithmetische Operationen für die Variablen "a" und "b" auszuwerten Der echo-Befehl gibt eine Nachricht auf der Standardausgabe aus, während der read-Befehl eine Zeile von der Standardeingabe liest und sie in eine Variable einfügt.
Um das Skript ausführbar zu machen, führen Sie als Nächstes den Befehl chmod aus:
chmod x mein_script.sh
Fahren Sie nun mit der Ausführung des Skripts fort, indem Sie den Befehl:
./my_script.sh
Sie werden aufgefordert, zwei Zahlen einzugeben. Nachdem Sie die Zahlen eingegeben haben, zeigt das Skript die Summe der beiden Zahlen auf dem Bildschirm an. Sie können das Skript auch ändern, um andere Operationen oder Aufgaben nach Ihren Bedürfnissen durchzuführen.
Probieren Sie einige alternative Linux-Befehle aus
Dieser Artikel konzentriert sich hauptsächlich auf den Befehl expr, aber Sie können auch einige andere Befehle für verschiedene Operationen ausprobieren. Zu diesen Befehlen gehören declare, let und bc. Alle diese Befehlszeilen-Tools können einfache bis komplizierte mathematische Operationen mit definierten Werten durchführen.
Mit dem Befehl declare können Sie Variablen und deren Attribute erstellen und ändern. Ebenso wertet der let-Befehl arithmetische Ausdrücke für Shell-Variablen aus. Bc schließlich ist ein Befehlszeilen-Rechner, der Arithmetik mit beliebiger Genauigkeit und verschiedene mathematische Funktionen unterstützt. Er kann auch eine Skriptsprache analysieren, die Schleifen, bedingte Anweisungen und Variablen unterstützt.