コマンドプロンプト・PowerShell・Bash 上でサクッと四則演算する

コマンドプロンプト・PowerShell・Bash、各種コンソールを使っていて、ちょっと計算したいなという時に、いちいち電卓アプリを立ち上げて、コンソール上の数字をコピって計算するのはダルい。

ということでコンソール・ターミナル上でサクッと四則演算する方法を調べてみた。「サクッと」なので、サクッとやれないレベルのことはやらない。

コマンドプロンプトの場合

以下のように set /a を使うと、変数にセットされた計算結果の値が標準出力に返される。

Rem 変数「n」に「10*2」の計算結果を詰めると、標準出力に計算結果が表示される
> Set /a n=10*2
20

数式にスペースを開けても大丈夫。小数を含む値の計算はできない。5 / 2」なんかは小数以下切り捨てで「2」になる。余りは「%」で算出できる。

小数を計算するには、文字列として展開して小数以下を別途計算したりしないといけないようで、サクッとやれないので却下。

PowerShell の場合

PowerShell は一番簡単で、小数も計算できる

# 直接数式を入れると計算結果が標準出力に表示される
> 5.5*2.5
13.75

> 8.8/3
2.93333333333333

Bash の場合

Bash の場合は、$(( )) という二重括弧の変数を使うと計算できる。Mac のターミナル、Windows の GitBash、Bash on Ubuntu on Windows にて検証。

# スペースは開けても開けなくても問題なし
$ echo $(( 100 * 20 ))
2000

Bash もコマンドプロンプト同様、このやり方では小数を含む計算はできない。割り算は小数切り捨てになる。

小数を計算するには、bc コマンドにパイプで投げてやると良い。GitBash や Bash on Ubuntu on Windows の場合、bc コマンドがなかった。Bash on Ubuntu on Windows では apt install bc でインストールできるので、少し試してみた。

# Bash on Ubuntu on Windows にて
# bc コマンドをインストールする
$ sudo apt install bc

# 四則演算してみる
$ echo 10 + 0.3 | bc
10.3

# 割り算は小数以下の有効桁数が小さいので、スケールを指定する
$ echo 10 / 3 | bc
3
$ echo "scale=3; 10 / 3" | bc
3.333

場合によるけどギリギリ常用範囲かな?

以上。