Translated and reviewed by: Japanese Online Manual Project <man-jp@jp.FreeBSD.org> Submitted by: Kazuo Horikawa <k-horik@jp.FreeBSD.org>
		
			
				
	
	
		
			143 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" -*- nroff -*-
 | 
						|
.\"
 | 
						|
.\" Copyright (c) 1993 Winning Strategies, Inc.
 | 
						|
.\" All rights reserved.
 | 
						|
.\"
 | 
						|
.\" Redistribution and use in source and binary forms, with or without
 | 
						|
.\" modification, are permitted provided that the following conditions
 | 
						|
.\" are met:
 | 
						|
.\" 1. Redistributions of source code must retain the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer.
 | 
						|
.\" 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer in the
 | 
						|
.\"    documentation and/or other materials provided with the distribution.
 | 
						|
.\" 3. All advertising materials mentioning features or use of this software
 | 
						|
.\"    must display the following acknowledgement:
 | 
						|
.\"      This product includes software developed by Winning Strategies, Inc.
 | 
						|
.\" 4. The name of the author may not be used to endorse or promote products
 | 
						|
.\"    derived from this software withough specific prior written permission
 | 
						|
.\"
 | 
						|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 | 
						|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 | 
						|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 | 
						|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
						|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 | 
						|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
						|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
						|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
						|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
						|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
						|
.\"
 | 
						|
.\" %FreeBSD: src/bin/expr/expr.1,v 1.9 1999/08/27 23:14:22 peter Exp %
 | 
						|
.\" jpman %Id: expr.1,v 1.2 1997/04/03 02:39:40 mutoh Stab %
 | 
						|
.\"
 | 
						|
.Dd July 3, 1993
 | 
						|
.Dt EXPR 1
 | 
						|
.Os
 | 
						|
.Sh 名称
 | 
						|
.Nm expr
 | 
						|
.Nd 式を評価する
 | 
						|
.Sh 書式
 | 
						|
.Nm expr
 | 
						|
.Ar expression
 | 
						|
.Sh 解説
 | 
						|
.Nm
 | 
						|
は、与えられた式
 | 
						|
.Ar expression
 | 
						|
を評価し、その結果を標準出力に書き出します。
 | 
						|
.Pp
 | 
						|
.Nm
 | 
						|
は、式で使われるすべての演算子を個別の引数として扱います。
 | 
						|
シェルが特殊キャラクタと解釈するような文字は、エスケープしておかなければ
 | 
						|
なりません。
 | 
						|
.Pp
 | 
						|
以下に、使える演算子を優先度の低い順に示します。
 | 
						|
同じ優先度の演算子は、{ } で括ってあります。
 | 
						|
.Bl -tag -width indent
 | 
						|
.It Ar expr1 Li | Ar expr2
 | 
						|
.Ar expr1
 | 
						|
が空の文字列でも 0 でもない場合は
 | 
						|
.Ar expr1
 | 
						|
を評価した結果を返し、さもなければ
 | 
						|
.Ar expr2
 | 
						|
を評価した結果を返します。
 | 
						|
.It Ar expr1 Li & Ar expr2
 | 
						|
.Ar expr1
 | 
						|
と
 | 
						|
.Ar expr2
 | 
						|
の各々の評価結果が、ともに空の文字列でも 0 でもない場合は
 | 
						|
.Ar expr1
 | 
						|
を評価した結果を返し、さもなければ 0 を返します。
 | 
						|
.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
 | 
						|
.Ar expr1
 | 
						|
と
 | 
						|
.Ar expr2
 | 
						|
がともに整数ならば整数としての比較結果を返し、さもなければ
 | 
						|
文字列とみなして、ロカールに従った照合方法を用いた比較結果を
 | 
						|
返します。
 | 
						|
いずれの場合も、指定された関係が「真」ならば 1 を、「偽」ならば
 | 
						|
0 を返します。
 | 
						|
.It Ar expr1 Li "{+, -}" Ar expr2
 | 
						|
整数値の引数に関して、加算あるいは減算した結果を返します。
 | 
						|
.It Ar expr1 Li "{*, /, %}" Ar expr2
 | 
						|
整数値の引数に関して、乗算、整数除算、または剰余の結果を返します。
 | 
						|
.It Ar expr1 Li : Ar expr2
 | 
						|
.Dq \:
 | 
						|
演算子は、
 | 
						|
.Ar expr1
 | 
						|
と
 | 
						|
.Ar expr2
 | 
						|
のパターンマッチを行います。
 | 
						|
.Ar expr2
 | 
						|
は、正規表現でなければなりません。
 | 
						|
またこの正規表現は、暗黙のうちに
 | 
						|
.Dq ^
 | 
						|
が仮定されることにより、文字列の先頭から比較を始めることに
 | 
						|
なります。
 | 
						|
.Pp
 | 
						|
パターンマッチが成功した場合、もし正規表現中に少なくとも1つ
 | 
						|
.Dq "\e(...\e)"
 | 
						|
の形の部分正規表現が含まれていたならば、このうち
 | 
						|
.Dq "\e1"
 | 
						|
に相当する文字列を返します。
 | 
						|
このような部分正規表現が含まれていなければ、マッチした文字列の
 | 
						|
長さを返します。
 | 
						|
またパターンマッチが失敗した場合、もし部分正規表現が含まれて
 | 
						|
いたならば空の文字列を返し、含まれていない場合は 0 を返します。
 | 
						|
.El
 | 
						|
.Pp
 | 
						|
丸括弧
 | 
						|
.Dq "()"
 | 
						|
は通常と同じくグループ分けに用いることができます。
 | 
						|
.Sh 使用例
 | 
						|
.Bl -enum
 | 
						|
.It
 | 
						|
以下の例は、変数 a に 1 を足します。
 | 
						|
.Dl a=`expr $a + 1`
 | 
						|
.It
 | 
						|
以下の例は、変数 a に設定されたパス名のうち、
 | 
						|
ファイル名に当たる部分を返します。
 | 
						|
文字列 // は、除算演算子との混同を防ぐために用います。
 | 
						|
.Dl expr "//$a" Li : '.*/\e(.*\e)'
 | 
						|
.It
 | 
						|
以下の例は、変数 a に含まれる文字の数を返します。
 | 
						|
.Dl expr $a Li : '.*'
 | 
						|
.El
 | 
						|
.Sh 診断
 | 
						|
.Nm
 | 
						|
ユーティリティは、以下の値のうち1つを返して終了します。
 | 
						|
.Bl -tag -width indent -compact
 | 
						|
.It 0
 | 
						|
式は空文字列でも 0 でもない
 | 
						|
.It 1
 | 
						|
式は空文字列か、0 であった
 | 
						|
.It 2
 | 
						|
式が無効だった
 | 
						|
.Sh 関連項目
 | 
						|
.Xr sh 1 ,
 | 
						|
.Xr test 1
 | 
						|
.Sh 規格
 | 
						|
.Nm expr
 | 
						|
ユーティリティは
 | 
						|
.St -p1003.2
 | 
						|
準拠です。
 |