以前 bash を使ってラーメンタイマーを作った。
しかしイマイチ気に入らない、Ubuntu の sh は dash へのリンクだ。
普通に #!/bin/sh で始めたり sh に渡すと逆順連番が展開されない。
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 でっきあっがりぃー
ちょっぴり進化したけど何か無駄を感じる…