1.expr コマンドは通常、整数値に使用されます。その一般的な形式は次のとおりです。
expr 引数 演算子 引数
一般的な使用法は、次のような算術演算を行うために expr を使用することです:
[root@centos ~]# expr 10 + 20
30
$ expr 30 / 3 / 2
5
(演算子の周囲にスペースがあることに注意してください。スペースがない場合は、文字列の連結を意味します)
乗算記号を使用する場合、その特定の意味はバックスラッシュでマスクする必要があります。シェルがアスタリスクの意味を誤解する可能性があるためです。例:
[root@centos ~]# expr 10 * 10 //: エラー、
expr: 構文エラー
[root@centos ~]# expr 10 * 10 //修正
100
2.出力/dev/nullを判定に使用できます。
式が成功した場合は、次のように表現できます:
$value=12
$expr $value + 10 > /dev/null 2>&1
$echo $?
0
式が失敗した場合、ゼロ以外の値が返されます
$value=hello
$expr $value + 10 > /dev/null 2>&1
$echo $?
2
3.expr は文字列でも動作します
文字列比較:
expr 成功した場合、戻り値 1 、その他の値は無効またはエラーです。たとえば、次の例では、2 つの文字列が等しいかどうかをテストします。文字列は "hello" と hello" です。
$value=hello
$expr $value = "hello"
1
#この時点でのシェルの戻り値時間は 0 です。
$echo $?
0
4.expr パターン マッチング:
expr パターン マッチングに関しては、コロン: オプションを指定することで、expr を使用して文字列パターン マッチングを指定できます。 .* は 0 または繰り返される
文字を表します。たとえば、tomcat の catalina.sh では、expr パターン マッチングを使用して接続ファイルの実際のパスを取得します。ソフトリンク
PRG="$0 "
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> *$'` # expr here 戻り値は接続ファイルの実際のパスです
if expr "$link" : '/.*' > then #パス名は 1 を返します
PRG="$ link"
else
PRG=`ディレクトリ名 "$ PRG"`/"$link"
fi
完了