ホーム > 環境・ユーティリティ > expr

expr: 式の評価

exprコマンドは、整数演算、文字列操作、論理演算など、さまざまな式を評価し、結果を標準出力に返します。シェルスクリプトでの変数計算や条件分岐に便利です。

概要

exprコマンドは、算術演算、関係演算、論理演算、文字列演算を実行するために使用されます。各引数は個別のトークンとして処理されるため、演算子とオペランドの間にはスペースが必要です。

主な特徴

  • 算術演算(加算、減算、乗算、除算、剰余)
  • 文字列演算(長さ、部分文字列、インデックス、正規表現マッチング)
  • 関係演算(等しい、等しくない、より大きい、より小さい)
  • 論理演算(AND、OR)

主な演算子

exprコマンドは、さまざまな演算子を使用して式を評価します。各演算子は個別の引数として扱われる必要があります。

算術演算子

関係演算子

論理演算子

文字列演算子

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`expr` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

基本的な算術演算

expr 10 + 5

2つの数値を加算します。

変数と乗算演算

num=20
expr $num \* 3

変数の値を使用して乗算を実行します。乗算演算子(*)はシェルで特別な意味を持つため、エスケープが必要です。

文字列長の取得

expr length "Hello World"

指定された文字列の長さを返します。

部分文字列の抽出

expr substr "example" 3 4

文字列 'example' の3番目の位置から4文字を抽出します。

正規表現マッチングと抽出

expr "filename.tar.gz" : ".*\.\(tar\.gz\)"

文字列から正規表現にマッチする部分を抽出します。括弧内の内容はサブマッチとして返されます。

論理AND演算

expr 5 \& 0

両方のオペランドが0でない場合、最初のオペランドを返します。シェルでは&はバックグラウンド実行を意味するため、エスケープが必要です。

ヒントと注意点

exprの使用に関する注意点と役立つヒントです。

主な注意点

  • **スペース必須**: 演算子とオペランドの間には必ずスペースが必要です。
  • **エスケープ**: シェルで特別な意味を持つ文字(例: `*`, `(`, `)`, `&`, `|`, `<` など)は、バックスラッシュ(`\`)でエスケープするか、引用符で囲む必要があります。
  • **整数演算**: `expr`は基本的に整数演算のみをサポートします。浮動小数点演算が必要な場合は、`bc`などの他のツールを使用する必要があります。
  • **結果の保存**: `expr`の結果は標準出力に出力されるため、シェル変数に保存するにはコマンド置換(例: `result=$(expr 10 + 5)` または `result=`expr 10 + 5``)を使用します。

同じカテゴリのコマンド