| コマンド名称 |
expr |
| コマンド機能 |
式を評価する |
| 機能概要 |
式を評価し、その結果を標準出力に書き出す。式のトークン(token)はそれぞれ別々の引数で与える必要がある |
| コマンドの由来 |
|
| RPMパッケージ名 |
coreutils |
| コマンド書式 |
expr expression...
expr [--help] [--version] |
| オプション |
演算子 (優先度順)
関係演算
|
左項がナルでも 0 でもなければ左項を返す。ナルや 0 だった場合は右項を返す。これは通常の `or' 演算にあたる
&
左項、右項ともナルでも 0 でもなければ左項を返す。それ以外の場合は 0 となる
< <= = == != >= >
両項を比較し、関係が真なら 1、偽なら 0 を返す (== は =と同義)。expr はまず両方の項を数値とみなして数値的な比較を行おうとする。どちらかの引数が数値とみなせなかった場合は辞書的な比較を行う
数値演算
+ -
代数的な加減算を行う。左右の項は数値とみなされ、失敗した場合はエラーとなる
* / %
代数的な乗算・除算・剰余演算を行う (`%' は C の場合と同じく剰余演算に対応する)。左右の項は数値とみなされ、これに失敗した場合はエラーとなる
文字列演算
string : regex
パターンマッチを実行する。左右の項は文字列であるとみなされ、右項は (grep
の使う基本的な) 正規表現として扱われる。右項には暗黙のうちに先頭に `^'
が自動的に付加され、左項がその正規表現にマッチするかのテストが行われる
マッチが成功した場合、正規表現の一部が `\(' と '\)' で囲われていれば、
: 演算子は string のうち、副表現 (subexpression) にマッチした部分を返す。それ以外の場合はマッチした部分の文字数が返される
マッチに失敗した場合、`\(' と `\)' が使われていた場合にはナル文字列が、そうでない場合には
0 が返される
`\(' と `\)' のペアのうち、最初のものだけが返り値に影響する。それ以外のペアは、正規表現の演算子をグループ化するという意味だけを持つ
他 の expr と異なり、 `+' (1 つ以上)、 `?' (0 または 1)、`|' (or 接続) もマッチング演算子として認識される
さらに、以下のキーワードも認識される:
index string charset
charset にあるどれかの文字が string に見付かれば、その最初に見付かった位置を返す。どの文字も見付からなければ 0 を返す
length string
string の長さを返す
match string regex
パターンマッチを行う別のやり方。これは ``string : regex'' と同じ
quote string
string を (演算子またはキーワードが含まれていても) 通常の文字列とみなす。環境変数 POSIXLY_CORRECT が設定されていると無効になる
substr string position length
string の部分文字列を返す。部分文字列は string の position から始まり、最大
length の長さを持つ。 position や length が正でなかったり数値でなかった場合は、ナル文字列を返す
括弧は通常のグループ化の意味に用いることができる。キー ワー ド (match,substr,
index, length) は文字列として用いることはできない
--help
標準出力に使用方法のメッセージを出力して正常終了する
--version
標準出力にバージョン情報を出力して正常終了する |
| 引数 |
|
| 使用例 |
|
|