概要
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``)を使用します。