exprコマンドは、
Unix系OSで利用できるコマンドの一つで、
数式を評価して結果を標準出力に出力する機能を持っています。Version 7
Unixで初めて導入され、現在も広く利用されています。
exprの主な機能
exprコマンドは、
整数、
文字列、および両方を組み合わせた
数式を評価できます。具体的には以下の操作が可能です。
整数演算: 加算、減算、乗算、除算、剰余などの基本的な算術演算を実行できます。
文字列操作: 正規表現を用いたパターンマッチング、
文字列内の文字検索、部分
文字列の抽出、
文字列の長さの取得などが可能です。
比較演算: 等しい、等しくない、より大きい、より小さいなどの比較演算を行い、真(1)または偽(0)の結果を返します。
これらの機能を組み合わせることで、複雑な条件式を評価することができます。
式の評価例
以下に、exprコマンドでブール式を評価する例を示します。
bash
expr length "abcdef" "<" 5 "|" 15 - 4 ">" 8
このコマンドを実行すると、結果として `1` が出力されます。これは以下の手順で評価された結果です。
1. `length "abcdef"` は
文字列 "abcdef" の長さを返すため、`6` となります。
2. `6 "<" 5` は `6` が `5` より小さくないため、偽となり `0` と評価されます。
3. `15 - 4` は `11` となります。
4. `11 ">" 8` は `11` が `8` より大きいため、真となり `1` と評価されます。
5. 最終的に `0 "|" 1` は、論理和(OR)演算の結果として `1` と評価されます。
したがって、コマンド全体の評価結果として `1` が出力されます。
注意点
exprコマンドは、主に数値計算よりも
文字列操作や条件式評価に向いています。数値のみの複雑な計算には、`bc` コマンドの方が適しています。
部分
文字列の検索や
文字列長の取得機能は、一部のバージョンでのみサポートされています。そのため、
移植性を重視する場合は、これらの機能の使用は避けるべきです。
まとめ
exprコマンドは、
Unix環境で広く利用される基本的なコマンドです。
数式の評価、
文字列操作、条件分岐などを組み合わせることで、様々な処理を柔軟に行うことができます。しかし、
移植性の観点から、特定機能の利用には注意が必要です。
外部リンク
expr: evaluate arguments as an expression – The Open Group基本仕様書第7号2018年版「シェル及びユーティリティ」
*
expr invocation in GNU coreutils manual