Corredor

ウェブ、プログラミングの勉強メモ。

コマンドライン上でサクッと四則演算をする

以前、以下のような記事を書いた。

neos21.hatenablog.com

この記事で紹介していない手法を見付けたので紹介。

expr コマンド

Bash には expr コマンドという、そのものズバリなコマンドがあった。

$ expr 261 - 215
46

こんな風に四則演算ができる。

bc コマンドにヒアストリングで渡す

bc コマンドで四則演算する際、以前の記事では echo とパイプを併用した書き方を紹介していた。

$ echo 10 + 0.3 | bc
10.3

コレとは別に、ヒアストリングと呼ばれる記法を利用して、より短く書けることが分かったので紹介。

「ヒアストリング」は、小なり記号3つ <<< で表現する。変数を擬似的にファイルのように扱えるので、bc コマンドにファイルを渡したように見せかけられる。

$ bc -l <<< 261-215
46

# スペースを入れると「+」や「-」の記号が評価されてしまうので、クォートで囲む
$ bc -l <<< '10 + 0.3'
10.3

ついでにコレを以下のように Function として定義してやれば、即席 calc コマンドが作れる。

calc () {
  bc -l <<< "$@"
}

# こうやって使える
$ calc 65320/670
97.49253731343283582089

新しいシェルプログラミングの教科書

新しいシェルプログラミングの教科書