けけずんセルフハッキング

エンジニアっぽい雰囲気を醸しだしているかのようなブログです!

/bin/expr で式を評価する

はじめに

よく分からんコマンド調べてみようシリーズ。 経緯はこちら。

kkznch.hatenablog.com

今回は /bin/expr について。

/bin/expr

shell script の中で使ったことがある気がする。 しかしどういうときに使ったか記憶は定かではない。

こちら man expr したときの DESCRIPTION の内容。

The expr utility evaluates expression and writes the result on standard output.

式を評価して標準出力に書き出すと。 使ってみないと何なのか分からん。

/bin/expr 実行してみる

それっぽいものを入力してみる。

$ expr 1 + 1
2

なるほど、test コマンドみたいに条件を判定するとかそういう意味の評価と思っていたら、式を評価するってそのまんまの意味らしい。 数字と演算子の間には半角スペースを入れないとエラーになるので注意が必要っぽい。

ちなみにexpr の計算結果を変数に格納したい場合は以下のようにすると良さげ。

$ result=$(expr 1 + 2 + 3)
$ echo ${result}
6

$( ... ) はコマンド置換(Command substitution)といって括弧で括られた中のコマンドを実行してその出力を返すことができ、上記ではこれを利用して計算結果を result という変数に格納している。

/bin/expr の終了ステータスについて

以下の記事で expr の終了ステータスについて面白いことが書いてあった。 暇な人は見てね。

qiita.com