Linux expr Befehl Tutorial für Anfänger (mit Beispielen)
Manchmal, während Sie auf der Kommandozeile arbeiten (besonders wenn Sie mit einem Shell-Skript arbeiten), können Sie sich in einer Situation wiederfinden, in der Sie Aktionen wie die Suche nach einer Teilzeichenkette in einer Zeichenkette, das Finden ihres Indexes sowie andere Dinge wie das Durchführen von Vergleichen und arithmetischen Operationen durchführen müssen.
Für diejenigen, die es nicht wissen, gibt es ein Befehlszeilenprogramm – genannt expr – das all dies ermöglicht. In diesem Tutorial werden wir die Grundlagen dieses Befehls sowie einige der Funktionen, die er bietet, besprechen. Bitte beachten Sie, dass alle hier erwähnten Beispiele und Anweisungen auf Ubuntu 16.04LTS getestet wurden.
Linux-Expr-Befehl
In der offiziellen Dokumentation des Tools steht, dass es zur Bewertung von Ausdrücken verwendet wird. Hier ist die Syntax des expr-Befehls:
expr EXPRESSION expr OPTION
Im Folgenden finden Sie einige Beispiele im Stil von Fragen und Antworten, die Ihnen eine gute Vorstellung davon vermitteln, wie dieses Instrument funktioniert.
Q1. Wie man arithmetische Operationen mit expr? durchführt
Angenommen, Sie möchten zwei Zahlen (z.B. 5 und 6) addieren, so können Sie dies mit expr. tun:
expr 5 + 6
Hier ist der obige Befehl in Aktion:
Sie können also sehen, dass die Summe ’11‘ in der Ausgabe produziert wurde. Bitte beachten Sie, dass ein einzelnes Leerzeichen auf jeder Seite des Operators („+“ in diesem Fall) obligatorisch ist. Andernfalls würde der Befehl expr die folgende Ausgabe erzeugen:
was eindeutig falsch ist, und nicht das, was wir erwarten.
Ebenso kann eine Subtraktionsoperation auf folgende Weise durchgeführt werden:
expr 15 - 6
Hier ist ein Beispiel für die Teilung:
expr 10 / 3
Beachten Sie, dass der oben genannte Befehl nur 3 in der Ausgabe erzeugt. Falls Sie den Rest sehen möchten, verwenden Sie den Operator %.
expr 10 % 3
Die Multiplikation sollte idealerweise auf folgende Weise erreicht werden:
expr 10 * 3
Aber das funktioniert nicht, weil * auch ein eingebauter Shell-Operator ist. Damit er sich also wie ein Multiplikationsoperator verhält, müssen Sie ihm wie folgt ein Escape-Zeichen voranstellen:
expre 10 \* 3
Q2. Wie führt man Vergleichsoperationen mit expr?
Mit dem Befehl expr können Sie auch Vergleichsoperationen auf verschiedene Weise durchführen. Der folgende Befehl (dritter im Bild unten) gibt beispielsweise ARG1 zurück, wenn er weder null noch 0 ist, ansonsten ARG2.
Bitte beachten Sie, dass der Backslash vor Pipe als Escape-Zeichen verwendet wird, da Pipe ansonsten als integrierter Shell-Operator behandelt wird.
Ebenso können Sie viele Operationen durchführen. Der folgende Screenshot – der Manpage des Befehls entnommen – soll Ihnen eine gute Vorstellung davon geben, welche Vergleiche Sie mit dem Befehl expr anstellen können.
Q3. Wie man mit expr? stringbezogene Operationen durchführt
Mit dem Befehl expr können Sie auch mehrere stringbezogene Operationen durchführen. Um z.B. die Länge einer Zeichenfolge zu finden, können Sie das Werkzeug wie folgt verwenden:
expr length [string]
Falls die Zeichenfolge Leerzeichen enthält, müssen Sie das Escape-Zeichen verwenden.
Sie können auch expr verwenden, um eine Teilzeichenkette in einer gegebenen Zeichenkette zu extrahieren. Hier ist die Syntax:
expr substr [Zeichenfolge] [pos] [Länge]
Um beispielsweise ‚Schmiede‘ aus ‚Howtoforge‘ zu holen, können Sie das Werkzeug wie folgt verwenden:
Darüber hinaus können Sie auch expr verwenden, um den Anfangsindex für eine Reihe von Zeichen in einer bestimmten Zeichenfolge zu finden. Hier ist die Syntax dafür
expr index [Zeichenkette] [Zeichen]
Um zum Beispiel den Index von ‚wt‘ in ‚howtoforge‘ zu finden, verwenden Sie expr wie folgt:
Schlussfolgerung
Wie Sie wahrscheinlich zustimmen werden, ist expr ein funktionsreicher Befehl, aber dennoch leicht verständlich und einfach zu benutzen. In diesem Tutorial haben wir versucht, Ihnen Informationen zu den meisten der grundlegenden Funktionen zu geben. Wenn Sie mit diesen Übungen fertig sind, können Sie die Man Page des Tools aufrufen, um mehr darüber zu erfahren.