expr ist ein internes Kommando,
und liefert den String "0"
für false (zur
Standardausgabe), oder "1"
(außer für den :-Operator) für true.
Achtung! Dies ist wie in C-Programmen (0 ist false und wie bei den eingebauten arithmetischen Ausdrücken (siehe Numerische Ausdrücke $(( ... ))), alles andere true); aber nun gerade entgegengesetzt zu test und den üblichen exit-Statuswerten (siehe auch test-Ausdrücke, true, false).
Um das Ergebnis (für die Standardausgabe) zu bestimmen, werden die übergebenen Argumente rechnerisch (und ausschließlich ganzzahlig) ausgewertet. Dabei müssen alle Operanden und Operatoren als einzelne Argumente bei expr ankommen. Man kann die Summe von fünf und zwei also nicht mit expr 5+2 bestimmen, sondern muß entsprechend Leerzeichen einfügen, damit einzelne Argumente entstehen: expr 5 + 2.
Neben den Grundrechenarten (+
,
-
, *
, und /
) gibt es
noch modulo (%
).
Zwei Werte können mit =
, <
,
<=
, >
, und >=
verglichen werden.
Bei einem String str und einem regulären
Ausdruck (RE) re liefert
expr str : re dann "0"
, wenn re nicht auf
str zutrifft. Ansonsten wird die Anzahl der Zeichen ausgegeben, die in
str mit dem re übereinstimmen.
AnyWare@Wachtler.de