Lから始まるLinux

2章41話
コマンド置換
2章42話 算術式展開
もくじ
2章43話
evalコマンド
算術式展開
若木 みどり
お兄ちゃん! 足し算って3桁ぐらいから 暗算が厳しくなるよね!
若木 しげる(驚き)
うん?
若木 みどり
ええっと 要するに Linux 上で 計算ができればなぁと…
若木 しげる
もちろんできるよ! 今回は 「算術式展開 (arithmetic expansion)」 を使おう!
使い方
若木 しげる
基本的な書き方はこうだよ
$(( ... ))
若木 みどり
コマンド展開 $( ... ) より丸括弧が多い書き方なんだね
若木 しげる
... の所に式を書けば展開してくれるんだ代表的な「演算子(operator)」以下のようなものがあるよ
演算子意味
+加算
-減算
*乗算
/除算
%剰余算
若木 しげる
さっそく echo演算結果を表示させてみよう!
echo "$((1 + 1))"
若木 みどり
実行してみるね!
2
若木 みどり(笑顔)
おおっ!まさに私が欲しかった機能だ!
変数の使用
若木 しげる
算術式展開の中では変数やコマンド展開も使えるよ
TIMER=180
sleep $((TIMER / 2)); \
echo "半分が経過しました"; \
sleep $((TIMER / 2)); \
tput bel
若木 みどり
あれ?TIMER 変数の値を参照するときは$TIMER書くんじゃなかったっけ?
若木 しげる
算術式展開の中では変数は参照でしか使われないんだそのため参照を表す記号 $ は省略可能で変数名のまま演算してもいいんだよ
まとめ
若木 みどり
今回は算術式展開を学んだよ!簡単な計算はシェル上でそのままできちゃうんだね!
若木 しげる
整数だけでなく小数の演算もできるよ数値の加工は良くあるので算術式展開に慣れておこう!