shellscriptでどんぶり勘定。

2010年3月26日 Linux, スクリプト関連, 雑記

【シェルスクリプトでTwitterに投稿。リストで台詞生成編】
【シェルスクリプトでTwi(ry — prompter関数の中身。】
この辺のスクリプトで使っていた caseで変数の値を評価して、値を丸めて変数を上書きするコード、これ何か長ったらしくてやだなぁと思って、ちょっと電車の中で考えてみて、いま書いてみた。結果・・・

#!/bin/bash
mt=$((`date ‘+%M’` / 10))0

ここまで縮みました。
見ての通り。dateで現在の時刻(分)を10で割って末尾に0を追加して変数mtに代入という流れ。

一見ダメそうに見えるけども、どうも10で割っても小数点以下がバッサリ切り捨てられて整数値しか帰ってこないのでこれで動いちゃう。とってもお行儀が悪い気がするけどもどうかなぁ・・・

ちなみにこっちでもいける。

#!/bin/bash
mt=$((`date ‘+%M’` / 10 * 10))

どちらもやりたかったことはこれ。↓↓

case “$mt” in
  0* ) mt=00 ;;
  1* ) mt=10 ;;
  2* ) mt=20 ;;
  3* ) mt=30 ;;
  4* ) mt=40 ;;
  5* ) mt=50 ;;
esac

split的な何かが必要なんじゃないかとビクビクしてたのに、意外に空気読んでくれちゃうんだな。

コメントは受け付けていません。