1 .\" You may copy, distribute and modify under the terms of the LDP General
2 .\" Public License as specified in the LICENSE file that comes with the
3 .\" gnumaniak distribution
5 .\" The author kindly requests that no comments regarding the "better"
6 .\" suitability or up-to-date notices of any info documentation alternative
7 .\" is added without contacting him first.
9 .\" (C) 1999-2002 Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com>
12 .\" man pages are NOT obsolete!
13 .\" <ragnar@ragnar-hojland.com>
15 .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
16 .\" Translated Sun 12 Mar 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
17 .\" Updated & Modified Sat Jan 24 13:37:04 JST 2004
18 .\" by Yuichi SATO <ysato444@yahoo.co.jp>
21 .\"WORD: operand オペランド
22 .\"WORD: null (character) ナル(文字)
24 .\"WORD: subexpression 副表現
26 .TH expr 1 "18 June 2002" "GNU Shell Utilities 2.1"
30 .BI "expr " expression...
32 .B expr [\-\-help] [\-\-version]
36 は式を評価し、その結果を標準出力に書き出す。
37 式のトークン (token) はそれぞれ別々の引数で与える必要がある。
39 オペランド (operand) は数字または文字列である。
41 はオペランドの位置に現れたものを、それに対して行われる演算に応じて
46 シェルから保護するための引用符が必要かもしれない (スペースなど)。
48 演算子は 2 項間に挿入されるシンボルとして、
49 または前置されるキーワードとして与えられる。
51 (しかしシェルによる解釈を避けるためには括弧をクォートしなければならない)。
64 左項がナルでも 0 でもなければ左項を返す。
68 左項、右項ともナルでも 0 でもなければ左項を返す。
70 .IP "\fB<\fP\0 \fB<=\fP\0 \fB=\fP\0 \fB==\fP\0 \fB!=\fP\0 \fB>=\fP\0 \fB>\fP"
71 両項を比較し、関係が真なら 1、偽なら 0 を返す
72 (\fI==\fP は \fI=\fPと同義)。
73 \fBexpr\fP はまず両方の項を数値に変換し、
75 どちらかの引数が数値に変換できなかった場合は辞書的な比較を行う。
77 .IP "\fB+\fP\0 \fB-\fP"
79 左右の項は数値に変換され、失敗した場合はエラーとなる。
80 .IP "\fB*\fP\0 \fB/\fP\0 \fB%\fP"
82 (`%' は C の場合と同じく剰余演算に対応する)。
83 左右の項は数値に変換され、これに失敗した場合はエラーとなる。
85 .IP "\fIstring\fP \fB:\fP \fIregex\fP"
88 右項は (\fBgrep\fP(1) の使う基本的な) 正規表現として扱われる。
89 右項には暗黙のうちに先頭に `^' が自動的に付加され、
90 左項がその正規表現にマッチするかのテストが行われる。
93 正規表現の一部が `\e(' と '\e)' で囲われていれば、
94 \fB:\fP 演算子は \fIstring\fP のうち、
95 副表現 (subexpression) にマッチした部分を返す。
96 それ以外の場合はマッチした部分の文字数が返される。
99 `\e(' と `\e)' が使われていた場合にはナル文字列が、
102 `\e(' と `\e)' のペアのうち、最初のものだけが返り値に影響する。
103 それ以外のペアは、正規表現の演算子をグループ化するという意味だけを持つ。
107 と異なり、`+' (1 つ以上)、`?' (0 または 1)、`|'
108 (or 接続) もマッチング演算子として認識される。
112 .BI index " string charset"
113 \fIcharset\fP にあるどれかの文字が \fIstring\fP に見付かれば、
114 その最初に見付かった位置を返す。どの文字も見付からなければ 0 を返す。
119 .BI match " string regex"
121 これは ``\fIstring\fP \fB:\fP \fIregex\fP'' と同じ。
124 \fIstring\fP を (演算子またはキーワードが含まれていても) 通常の文字列とみなす。
125 環境変数 \fBPOSIXLY_CORRECT\fR が設定されていると無効になる。
127 .BI substr " string position length"
128 \fIstring\fP の部分文字列を返す。
129 部分文字列は \fIstring\fP の \fIposition\fP から始まり、
130 最大 \fIlength\fP の長さを持つ。
131 \fIposition\fP や \fIlength\fP が正でなかったり数値でなかった場合は、
134 括弧は通常のグループ化の意味に用いることができる。
135 キーワード (match, substr, index, length) は文字列として用いることはできない。
143 標準出力に使用方法のメッセージを出力して正常終了する。
146 標準出力にバージョン情報を出力して正常終了する。
160 の値には `/' が含まれていなくても良い):
162 expr $bar : \'.*/\e(\^.*\e)\' \'\^|\' $a
164 文字列 `abc' に文字 `b' をマッチさせる:
166 expr abc : 'a\e(.\e)c'
168 文字列 `abcdef' に `c' または `z' のいずれかが存在している位置を探す:
172 キーワード (index) を文字列として用いている誤った例:
176 キーワード (index) を文字列として用いている正しい例:
178 expr index quote index d
180 プログラムのバグについては bug-sh-utils@gnu.org に報告してください。
181 ページの更新は Ragnar Hojland Espinosa
182 <ragnar@ragnar-hojland.com> が行っています。