Hitachi

JP1 Version 11 JP1/Advanced Shell 


8.4.12 exprコマンド(式を評価する)

形式

expr 

機能

式を評価して,標準出力に結果を書き込みます。式の要素はすべて別々の引数として指定します。

式は,数値・文字列・変数・式およびそれらと演算子の組み合わせで指定します。式の評価は文字列および整数として保持します。

引数

評価する式を指定します。演算子を優先順位の低い順に次に示します。同じ優先順位の演算子は,{ }で囲みコンマで区切って示します。引数が不正の場合,exprコマンドはエラーメッセージを出力して終了コード2を返します。expr1とexpr2には式を指定します。

expr1| expr2

expr1の評価が空文字列およびゼロではない場合,expr1の評価を返します。expr1が空文字列およびゼロの場合は,expr2の評価を返します。expr2も空文字の場合は,空文字を返します。

expr1 & expr2

どちらの式の評価も空文字列またはゼロではない場合,expr1の評価を返します。それ以外の場合は,0を返します。

expr1 {=,>,>=,<,<=,!=} expr2

両方の式の評価が整数の場合は,整数を比較した結果を返します。それ以外の場合は,ロケールで定義した照合順序で文字列を比較した結果を返します。結果は,指定された関係が真の場合は1,偽の場合は0になります。

・=:左辺の値と右辺の値が等しい

・>:左辺の値が大きい

・>=:左辺の値が大きいか右辺の値と等しい

・<:左辺の値が小さい

・<=:左辺の値が小さいか右辺の値と等しい

・!=:左辺の値と右辺の値が等しくない

expr1 {+,-} expr2

両方の式の評価が整数値の場合,加算または減算の結果を返します。

整数値ではない場合,エラーメッセージ(expr: non-numeric argument)を出力します。

・+:加算

・-:減算

expr1 {*,/,%} expr2

両方の式の評価が整数値の場合,乗算,除算および剰余演算の結果を返します。整数値ではない場合,エラーメッセージ(expr: non-numeric argument)を出力します。除数がゼロの場合,エラーメッセージ(expr: division by zero)を出力します。

*:乗算

・/:除算

・%:剰余

expr1 : expr2

expr2がexpr1と一致するかどうかを評価します。

expr2は正規表現で指定します。正規表現には,「^」がストリングの先頭に付加されます。

・expr2にタグ付き正規表現が指定されている場合,(expr2がexpr1と一致する場合)最初のタグ付き正規表現にマッチした文字列を返します。

・expr2にタグ付き正規表現が指定されていない場合,(expr2がexpr1と一致する場合)一致した文字数を返します。

・expr2がexpr1と一致しない場合,およびexpr2に正規表現が使用されている場合は空文字を返します。expr2に正規表現が使用されていない場合は,0を返します。

・expr2の指定が空文字と一致する指定の場合,0を返します。そのため,expr1が空文字であることを判定する場合は,expr1とexpr2の両方に同じ文字を付与して評価させる必要があります。つまり,「expr '' : '$'」はエラーであり,「expr X'' : 'X$'」などのように使用する必要があります。

length 文字列

指定した文字列の長さを返します。環境変数ADSH_CMDEXPR_LENGTHについては「2.5 環境変数を設定する」を参照してください。

・環境変数ADSH_CMDEXPR_LENGTH=bが設定されている場合,lengthは演算子と判断され,その後ろに続く文字列の長さ(バイト数)を返します。

・環境変数ADSH_CMDEXPR_LENGTH=cが設定されている場合,lengthは演算子と判断され,その後ろに続く文字列の長さ(文字数)を返します。

・環境変数ADSH_CMDEXPR_LENGTHが設定されていない,またはb,c以外の値を設定した場合は,lengthは演算子として扱われません。

また,length演算子には式を指定できます。式を指定する場合は,式全体を()(丸括弧)で囲む必要があります。

終了コード

終了コード

意味

0

正常終了。式は空文字列および0ではありません。

1

正常終了。式は空文字列または0です。

2

エラー終了。式は無効です。

3以上

エラー終了

  • メモリ不足などが発生しました。

注意事項

使用例