bash 算術計算 書き方

シェルスクリプトを書いているとき、計算式が使えると便利なことがあります。

  • ファイルの残りの行数を表示したいな
  • 行毎に項目を足して合計を表示したいな
  • 入力したデータを計算して処理に使いたいな

いろいろな状況があると思いますが、bashでも算術計算は可能です。しかも、bashの算術計算は、Bシェルの書き方よりも簡単に書けるようになりました。

よく使う整数の計算について、bashでのシェルスクリプトの書き方を紹介します。

bash 算術計算

bashで整数の計算を行う場合は、

$((計算式))

という書き方をします。

足し算:和

$ echo $((1+1))
2

引き算:差

$ echo $((3-2))
1

掛け算:積

$ echo $((3*2))
6

割り算:商

割り算の結果は、端数切捨てです。

$ echo $((8/2))
4
$ echo $((9/2))
4

シェルスクリプト 算術計算の使い方

fastqファイルは4行で1セットになっているので、引数で指定した「個数*4」行分を表示するようにしました。

head_fastq.sh

# /bin/bash                                                                                                                             
READS=$(($1 * 4))

head -n$READS DATA.fq | tee DATA.head.fq

使い方

$ ./head_fastq.sh 1
LINE 1
LINE 2
LINE 3
LINE 4
$ ./head_fastq.sh 2 | wc -l
8

算術計算で面白いシェルスクリプトを書こう

(検索しても情報が少ない)こういうマニアックな項目も、ちょっと好きです。

コンピューターだもん、「コマンドで計算できるよね?」と思って調べたのがキッカケですが、電卓みたいにバシバシ計算するのは意外と面倒だとわかりました。

その場で「サッ!」と計算できたら手軽で楽しいけど、電卓アプリとかエクセル使う方が便利かもしれないですね。都度、アプリを起動するのも面倒ですが。

ただし、シェルスクリプトの中では、算術計算を使えるととても役に立ちます!算術演算を活用すれば、きっとシェルスクリプトのアイディアも広がるのでは?

すぐに使える「サンプル」がたくさん載ってる本を紹介しておきます!

【bash】

入門bash 第3版

【Bシェル】

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界