EXPR(1) | General Commands Manual | EXPR(1) |
名前¶
expr - 式を評価する
書式¶
expr expression...
expr {--help,--version}
説明¶
この文書はもうメンテナンスされていないので、不正確・不完全 な可能性がある。現在は texinfo 文書が正式な情報となっている。
このマニュアルページは GNU 版 expr について記述したものである。 expr は式を評価してその結果を標準出力に書き出す。式のトークンはそれぞれ分離 した形で引き数に渡す必要がある。オペランドは数字か文字列である。文字列 は expr ではクオートしなくてよいが、シェルから保護するための引用符が必要かもし れない。 expr のオペランドの位置に置かれたものは、そのオペランドに対する演算に応じて 数値または文字列とみなされる。
演算子は以下の通り(優先度の高い順):
- |
- 左項がヌルでも 0 でもなければ左項を返す。ヌルや 0 だった場合は右項を返 す。これは通常の `or' 演算である。
- &
- 左項、右項ともヌルでも 0 でもなければ左項を返す。それ以外の場合は 0 と なる。
- < <= = == != >= >
- 両項を比較し、関係が真なら 1、偽なら 0 を返す(== は = と同義)。 expr はまず両方の項を数値とみなし、数値データとしての比較を行お うとする。これに失敗した場合は、辞書的な比較を行う。
- + -
- 代数演算を行う。左右の項は数値とみなされ、失敗した場合はエラーとなる。
- * / %
- 代数演算を行う(`%' は C の場合と同じく剰余演算に対応する)。左右の項 は数値とみなされ、これに失敗した場合はエラーとなる。
- :
- パターンマッチを実行する。左右の項は文字列であるとみなされ、右項は正規 表現として扱われる。右項には暗黙のうちに先頭に `^' が自動的に付加され、 左項がその正規表現にマッチするかのテストが行われる。マッチが成功した場 合、正規表現の一部が `\(' と '\)' で囲われていた場合にはその部分が : の返り値となり、それ以外の場合はマッチした部分の文字数が返される。マッ チに失敗した場合、 `\(' と `\)' が使われていた場合にはヌル文字が、そ うでない場合には 0 が返される。 `\(' と `\)' のペアは一つだけしか使 うことができない。
- さらに、以下のようなキーワードが認識される:
- match string regex
- パターンマッチを行う別のやり方。これは ``string : regex'' と同じ。
- substr string position length
- string の部分文字列を返す。部分文字列は string の position から始まり、最大 length の長さを持つ。 position または length が負か数値以外の場合は、ヌル文字列 が返る。
- index string character-class
- string のうち、character-class の中のどれかの文字が見つかっ た最初の位置を返す。 string の中に character-class のどれ もなかった場合は 0 を返す。
- length string
- string の長さを返す。
括弧を用いて演算をグループ化することができる。キーワードは文字列として 用いることはできない。
オプション¶
GNU expr が引き数一つで実行されたときに限り、以下のオプションが認識される:
例¶
シェル変数 a に 1 を加えるには以下のようにする:
- a=`expr $a + 1`
以下は変数 a に入っているファイル名のうち、ディレクトリ以外の部分を表示するのに用い ることができる。 ( a に `/' が含まれていなくても良い):
- expr $a : ´.*/\(.*\)´ ´|´ $a
シェルのメタキャラクタをクオートしていることに注意。
expr は終了時に以下のような値を返す。
0: 式がヌルでも 0
でもなかった場合。
1: 式がヌルまたは 0
だった場合。
2:
式が正しくなかった場合。
GNU Shell Utilities | FSF |