Ramen Timer for Ubuntu sh

以前 bash を使ってラーメンタイマーを作った。

Ramen Timer for bash

しかしイマイチ気に入らない、Ubuntu の sh は dash へのリンクだ。
普通に #!/bin/sh で始めたり sh に渡すと逆順連番が展開されない。

Almquist Shell – Wikipedia

dash でヤルなら seq を使うしか無いかな、知識が足りないからだろうけど。
seq は逆順にできないので sort で反転させれば上手くいくと思う。

ところで printf なんてコマンドがある。

#!/bin/sh

read -p "何色? :" pantu
printf "%sのパンツ\n" $pantu

echo より遥に解りやすい、C 言語の使い方で括弧やカンマが無いだけだし。
\r や \n エスケープが必要なところが自然に思えて逆に嬉しい。
しかし for 文に使うと何故か %d でも %s でもエラーになって困っていた。
今頃知ったのだが for 文の場合は %g を指定すればイケた。

そんなこんなで dash 版ラーメンタイマーを作ってみる。

#!/bin/sh

for i in `seq 180 | sort -n -r`
do
    printf "残り %g 秒  \r" $i
    sleep 1
done
echo でっきあっがりぃー

ちょっぴり進化したけど何か無駄を感じる…