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: 16:46:40 GMT, November 24, 2023