exprのサンプル

四則演算のコマンドとしてよく利用されるexprコマンドですが、本資料では四則演算を含む他の便利な使用方法も記述します。


スポンサーリンク

関連資料

パイプ(|)を利用したサンプル

パイプを利用する場合は以下のような構文になります。
パイプを文字としてシェルに認識されるようにパイプ(|)の前にバックスラッシュ(\)をつけています。

expr 左項 \| 右項

パイプの動作は左項が空または0の場合、右項が表示されます。
左項が0以外または、空ではない場合は左項が表示されます。

アンパサンド(&)を利用したサンプル

アンパサンド(&)を文字としてシェルに認識されるようにアンパサンド(&)の前にバックスラッシュ(\)をつけています。

expr 左項 \& 右項

アンパサンドの動作は右項、左項とも0以外または空でなければ左項が表示されます。
両方とも0または空の場合は、右項を表示します。
この条件以外の場合は0が表示されます。

比較演算子を利用したサンプル(<, <=, =, ==, !=, >=, >)

比較した内容が正しければ1を、正しく無ければ0を表示します。
(真なら1、偽なら0)

四則演算など

exprで+-*/を利用して四則演算ができます。()も利用できます。

パターンマッチ(match)

expr 文字列 : 文字列

以下も同じ動作

expr match 文字列 文字列

マッチしない場合は0を返却します。
詳しくは man expr で確認してください。

$ expr sakura : sakura
6
$ expr match sakura sakura
6
$ expr match sakura sakur
5
$ expr match sakura sak
3
$ expr match sakura zzz
0

文字列部分の取得

substrを利用することにより文字列の部分取得ができます。

expr substr 文字列 開始位置 長さ

以下に実行例を記します。

$ expr substr sakura 1 6
sakura
$ expr substr sakura 2 6
akura
$ expr substr sakura 2 3
aku

文字が存在した位置を返却する

indexを利用することにより、文字が出現した位置が返却されます。

expr index 文字列 キャラクタクラス

注意点としては、キャラクタクラスに指定した文字のいづれかが存在した最初の位置を返却します。
以下に実行例を記します。

$ expr index sakura s
1
$ expr index sakura a
2
$ expr index sakura tsubaki
1

文字列の長さを取得する

lengthを利用することにより文字列の長さを取得することができます。
以下に実行例を記します。

$ expr length sakura
6
$ expr length " sakura "
8
$ expr length ""
0

スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-08 (土) 15:09:17