Expr
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-Skripten genutzt, 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
Alle Ausdrücke unterliegen generell den Regeln der Aussagenlogik, und es können unter anderem folgende Operationen 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
Der folgende Ausdruck gibt als Ergebnis „1“ aus:
$ expr length "abcdef" "<" 5 "|" 15 - 4 ">" 8
Generell wird der Ausdruck in einen linken und rechten 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
expr: evaluate arguments as an expression – Open Group Base Specificationexpr(1): evaluate expression – OpenBSD General Commands Manualexpr(1): Ausdrücke auswerten – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.