Last Updated on 2013年2月1日 by かんりにん
たまにしかやらないことはすぐに忘れちゃうので、メモです。
浮動小数点(0.2とか、小数点での計算)はbashではできないため、zshを利用。
以下、バックアップデータの増分を計算するスクリプトを作成。
スクリプト例1 †
整数3734101183ベースに1.000784667で乗算し置換、値が1000000000000になるまで繰り返す。
- スクリプト
#!/bin/zsh i=3734101183 while [ $i -lt 1000000000000 ]; do echo "$i" i=`echo $((i*1.000784667))` done
- 実行例
3734101183 3737031208.9729609 3739963534.0406122 3742898160.0069776 3745835088.677496 3748774321.8590231 3751715861.3598332 3754659708.9896188 …
スクリプト例2 †
例1の実行結果をfloating.txtに落とし、値が492256313344になるまで
繰り返し加算していく。
- スクリプト
#!/bin/zsh i=3734101183 while [ $i -lt 492256313344 ]; do read line echo $i i=`echo $(($i+$line))` done < floating.txt
- 実行例
3734101183 7471132391.9729614 11211095926.013573 14953994086.02055 18699829174.698044 22448603496.557068 …
―参考
加算、減算はexprでも実行出来るが、乗算(掛け算)、除算(割り算)はechoで実行する必要がある(exprは使用できない)
浮動小数点の計算に関する注意事項 †
参考:有難うございました!
unoh.github.com シェル(bash)スクリプトを書くときのTips
http://labs.unoh.net/2008/09/bashtips.html