expr

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

expr ist ein Befehl auf dem Betriebssystem Unix und seinen Derivaten, welches einen Ausdruck auswertet und das Ergebnis ausgibt. expr verarbeitet Ausdrücke mit Integerwerten oder Zeichenketten sowie auch Regulären Ausdrücken.

Der Befehl wird im Wesentlichen in Shell-Scripten genutzt und ist bei modernen Unix-Shells wie zum Beispiel der bash bereits eingebaut (built in-Kommando). Die meisten Ausdrücke, die sich mit expr zusammenstellen lassen, können moderne Unix-Shells zudem bereits durch Syntaxkonstrukte, wie sie in Programmiersprachen ebenfalls vorhanden sind, selbst auswerten.

expr ist ein Bestandteil der Single Unix Specification. Die GNU-Implementierung ist Bestandteil der GNU core utilities.

Verfügbare Operanden[Bearbeiten]

Alle Ausdrücke unterliegen generell den Regeln der Aussagenlogik, und es können unter anderem folgende Operanden verwendet werden:

  • für Integer: Addition, Subtraktion, Multiplikation, Division und Modulus
  • für Zeichenketten: Reguläre Ausdrücke auswerten, Bestimmte Zeichen in einer Zeichenkette finden, Länge bestimmen
  • für Beide: Vergleiche (gleich, nicht gleich, kleiner als, größer als, usw.)
  • Zusätzlich können boolesche Ausdrücke mit den Logikoperatoren und sowie oder verwendet werden.

Beispiel[Bearbeiten]

Der folgende Ausdruck gibt als Ergebnis „1“ aus:

$ expr length  "abcdef"  "<"  5  "|"  15  -  4  ">" 8

Generell wird der Ausdruck in einen links und rechts Teil der Disjunktion geteilt, beide werden separat ausgewertet, bevor die Disjunktion angewendet wird:

  • Die Länge der Zeichenkette "abcdef" ist 6, also größer als 5. Der linke Teil des Ausdrucks ergibt also 0.
  • Da 15-4 allerdings 11 ergibt und diese Zahl größer als 8 ist, ergibt der rechte Teil True, also 1.

Nun kann die finale Disjunktion angewendet werden, aus 0 | 1 ergibt sich dann das Resultat 1.

Weblinks[Bearbeiten]