5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

シェルで数値計算をするコマンドについて

Last updated at Posted at 2023-09-13

はじめに

先日他人の書いたシェルスクリプトを読んでいるときに、シェルでの数値計算の省略表記方法について初めて調べたので、その方法について記載します。

シェルの実行結果について

シェル内の数字は全て文字列扱いになるため、普通に書こうとすると文字列として実行されてしまいます。

$ echo 1+3
1+3
$ echo 1 + 3
1 + 3
$ echo 3/1
3/1

1. exprコマンドを使う

linux 数値計算で調べて一番上に出てきたコマンドです。
expr 数値 演算子 数値の様な使い方をします。なお小数の計算はできないため、その場合は別のコマンド(bc)を使うそうです。

こちらは本題ではないので、簡単に例をいくつか書きます。

# 演算子は離して書く
$ expr 1 + 3  
4
$ expr 1 / 3
0
$ expr 6 / 2
3

exprコマンドは他にも使い道がありますが、簡単な計算だけなら2の方法が簡単かと思います。

2. $((f))を使う

文字にするとよく分からないので、実際の例を書いてみます。

$ echo $((1+3))
4
$ echo $((1 + 3))
4

シェルの組み込み機能で、このような構文が使えるそうです。
$(コマンド)でコマンドの結果を出力するのはよく使いますが、(1+3)というコマンドがあるわけではないので、初めて見たとき混乱しました。

# コマンドを出す例
$ echo $(pwd)
/Users/wkani

ちなみに$(())の表記方法でlinuxコマンドを入れて見た場合は、エラーにならず0が帰ってきました。
使う機会はないと思います。

$ echo $((pwd))  
0
$ echo $((ls)) 
0
5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?