シェルワンライナー160本ノック問題14
問題14 さまざまなループ
羊を100匹、1秒ごとに数えて出力する方法を考える問題だった。
seq なりなんなりで100カウントしつつさて1秒待つという処理をどうしたものかと悩んでしまった。sleep で実現できるということに思い至らなかった。
正解例として
n=1;while [ $n -le 100 ]; do echo "羊が${n}匹" ; n=$((n+1)); sleep 1 ;done
などがある。while の直後のテストコマンドはちゃんと中身とスペースを空けないと正しく認識されない。
ほかにも for 文にコマンド置換を用いてやる別解などがあった。
シェルスクリプトをターミナルで編集したいがどうすればいいのか、やっぱりemacsとかの使い方を覚えるほかなさそう。それともecho を使って一行ずつ書いていくのでもよいかな。慣れないうちはそうしようと思う。シングルクォートを忘れると # が正しく処理されないことに気を付けなければ。