1. Der expr-Befehl wird im Allgemeinen für ganzzahlige Werte verwendet:
expr-Argument-Operator-Argument
Die allgemeine Verwendung besteht darin, expr für arithmetische Operationen zu verwenden, wie zum Beispiel:
[root @centos ~]# expr 10 20
30
$expr 30 / 3 / 2
5
(Beachten Sie, dass sich um den Operator Leerzeichen befinden. Wenn keine Leerzeichen vorhanden sind, bedeutet dies eine Zeichenfolgenverkettung.)
Bei Verwendung des Multiplikationszeichens muss seine spezifische Bedeutung durch einen Backslash maskiert werden. Weil die Shell die Bedeutung des Sternchens möglicherweise falsch versteht. Zum Beispiel:
[root@centos ~]# expr 10 * 10 //: Fehler,
expr: Syntaxfehler
[root@centos ~]# expr 10 * 10 // Korrekt
100
2. Verwenden Sie expr, um die Ausgabe zur Beurteilung in /dev/null zu importieren.
Wenn der Ausdruck erfolgreich ist, kann er wie folgt ausgedrückt werden:
$value=12
$expr $value 10 > /dev/null 2>&1
$echo $?
0
Wenn der Ausdruck fehlschlägt, geben Sie einen Wert ungleich Null zurück
$value=hello
$expr $value 10 > /dev/null 2>&1
$echo $?
2
3.expr arbeitet auch mit dem String-
-String-Vergleich:
expr gibt bei Erfolg den Wert 1 zurück, alle anderen Werte sind ungültig oder ein Fehler. Das folgende Beispiel testet beispielsweise, ob zwei Zeichenfolgen gleich sind, wobei die Zeichenfolgen „hello“ und „hello“ lauten.
$value=hello
$expr $value = "hello"
1
# Dies Der Rückgabewert der Shell ist 0.
$echo $?
0
4. In Bezug auf den Ausdrucksmustervergleich können Sie expr verwenden, um die Zeichenfolge durch Angabe des Doppelpunkts anzugeben : Option. Mustervergleich.* stellt ein beliebiges
-Zeichen dar, das 0 oder mehr Mal wiederholt wird. Der Rückgabewert ist der Inhalt in Klammern. In Tomcats catalina.sh wird beispielsweise der Mustervergleich verwendet Verbindungsdatei. Beispiele sind wie folgt:
# restart links – $0 kann ein Softlink sein
PRG="$0"
while [ -h "$PRG" ]; do
ls=` ls -ld "$ PRG"`
link=`expr "$ls" : '.*-> .*$'` #Der Rückgabewert von expr ist hier der tatsächliche Pfad der verbundenen Datei
if expr "$link" : '/ .*' > /dev/null; then #Pfadname gibt 1 zurück
PRG="$link"
else
PRG=`dirname "$PRG"`/ „$link“
fi
fertig