コマンドライン上でサクッと四則演算をする
以前、以下のような記事を書いた。
この記事で紹介していない手法を見付けたので紹介。
目次
expr
コマンド
Bash には expr
コマンドという、そのものズバリなコマンドがあった。
$ expr 261 - 215
46
こんな風に四則演算ができる。
- 参考 : 【 expr 】コマンド――計算式や論理式を評価する : Linux基本コマンドTips(171) - @IT
- 参考 : Performing Math calculation in Bash - Shell Tips!
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
- 参考 : Doing simple math on the command line using bash functions: $1 divided by $2 (using bc perhaps) - Unix & Linux Stack Exchange
- 参考 : ヒアストリングとヒアドキュメント - Qiita
- 参考 : bashのTipsというかCheatSheetというか備忘メモというかよくある系のネタというかごった煮というかまとまったらpostしようと思ってたらタイミング逃して膨らんじゃった落書きというか、、、っていうかタイトル何文字行けるんだろう。最初の方の消えちゃったりするのかな。え?マジでこんなに入るの!?ウヒョーーーー!!! - Qiita