EXPR
Section: User Commands (1)
Updated: GNU Shell Utilities
Index
JM Home Page
roff page
名前
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
が引き数一つで実行されたときに限り、以下のオプションが認識される:
- --help
-
使い方に関するメッセージを標準出力に表示し、実行成功を返して終了する。
- --version
-
バージョン情報を標準出力に表示し、実行成功を返して終了する。
例
シェル変数
a
に 1 を加えるには以下のようにする:
-
a=`expr $a + 1`
以下は変数
a
に入っているファイル名のうち、ディレクトリ以外の部分を表示するのに用い
ることができる。
(
a
に `/' が含まれていなくても良い):
-
expr $a : '.*/\(.*\)' '|' $a
シェルのメタキャラクタをクオートしていることに注意。
expr
は終了時に以下のような値を返す。
0: 式がヌルでも 0 でもなかった場合。
1: 式がヌルまたは 0 だった場合。
2: 式が正しくなかった場合。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 例
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:25 GMT, November 19, 2007