戻る

gnuのsh-utils付属のexprコマンドのマニュアル。

================================
expr(1)                                                   expr(1)

名前
       expr - 式を評価する

書式
       expr expression...

       expr [--help] [--version]

説明
       expr  は式を評価し、その結果を標準出力に書き出す。式のトー
       クン (token) はそれぞれ別々の引数で与える必要がある。

       オペランド (operand) は数字または文字列である。 expr は オ
       ペランドの位置に現れたものを、それに対して行われる演算に応
       じて強制的に整数または文字列として解釈する。文字列は  expr
       ではクオートしなくてよいが、シェルから保護するための引用符
       が必要かもしれない (スペースなど)。

       演算子は二項間に挿入されるシンボルとして、または前置される
       キーワードとして与えられる。括弧も通常のようにグループ化に
       利用できる (しかしシェルによる解釈を避けるためには括 弧 を
       クォートしなければならない)。

       expr は以下の終了ステータスを返す:
       0: 式がナルでも 0 でもない
       1: 式がナルまたは 0
       2: 式が正しくない

演算子 (優先度順)
   関係演算
       |       左 項がナルでも 0 でもなければ左項を返す。ナルや 0
              だった場合は右項を返す。これは通常の `or' 演算に あ
              たる。

       &      左項、右項ともナルでも 0 でもなければ左項を返す。そ
              れ以外の場合は 0 となる。

       <  <=  =  ==  !=  >=  >
              両項を比較し、関係が真なら 1、偽なら 0 を返 す  (==
              は  =と同義)。 expr はまず両方の項を数値とみなして
              数値的な比較を行おうとする。どちらかの引数が数値 と
              みなせなかった場合は辞書的な比較を行う。

   数値演算
       +  -    代数的な加減算を行う。左右の項は数値とみなされ、失
              敗した場合はエラーとなる。

       *  /  %
              代数的な乗算・除算・剰余演算を行う (`%' は C の場合
              と同じく剰余演算に対応する)。左右の項は数値とみなさ
              れ、これに失敗した場合はエラーとなる。

   文字列演算
       string : regex
              パターンマッチを実行する。左右の項は文字列である と
              み なされ、右項は (grep(1) の使う基本的な) 正規表現
              として扱われる。右項には暗黙のうちに先頭に `^' が自
              動 的に付加され、左項がその正規表現にマッチするかの
              テストが行われる。

              マッチが成功した場合、正規表現の一部が `\(' と '\)'
              で囲われていれば、 : 演算子は 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) は文字列として用いること
       はできない。

オプション
       GNU  expr   が引数一つだけで起動された場合には、以下のオプ
       ションが認識される:

       --help 標準出力に使用方法のメッセージを出力して正常終了 す
              る。

       --version
              標準出力にバージョン情報を出力して正常終了する。

例
       シェル変数 foo に 1 を加える:

              foo=`expr $a + 1`

       変 数 bar に格納されているファイル名のうち、ディレクトリ以
       外の部分を表示する (bar の値には `/' が含まれていなくて も
       良い):

              expr $bar : '.*/\(.*\)' '|' $a

       文字列 `abc' に文字 `b' をマッチさせる:

              expr abc : 'a\(.\)c'

       文字列 `abcdef' に `c' または `z' のいずれかが存在している
       位置を探す:

              expr index abcdef cz

       キーワード (index) を文字列として用いている誤った例:

              expr index index a

       キーワード (index) を文字列として用いている正しい例:

              expr index quote index d

注意
       プログラムのバグについては bug-sh-utils@gnu.org に報告して
       く だ さ い。 ページの更新は Ragnar Hojland Espinosa  が行っています。

GNU Shell Utilities 2.0   18 August 1999                  expr(1)