((--i)) でiが0になる時、返り値1なんだ。
iが負の値になる時でも返り値0なのに、0になる時だけ特別なんですね。
へぇー!こうか。
% i=10; while ; echo $i; ((--i)) && sleep 1s ; do; done; 10 9 8 7 6 5 4 3 2 1
for i in `seq 1 10`
do
何かのコマンド
sleep 1h
done
echo "finished" | write username
といったスクリプトを書いているのですが、このやり方だと
最後にコマンドを実行してから一時間、無駄に sleep してしまいます。
最後の sleep だけ実行しない方法はないでしょうか。
変数 i<=9 のときにsleep 1h
か
i/=10の時に sleep 1h
i=10
while
何かのコマンド
((--i)) && sleep 1h
do :; done
echo "finished" | write username
ですが、たびたびすいません。
実際に使っているスクリプトだと、ループの実行回数が不定な場合があるのです。
(行数が特定できないファイルからの読み込みとか)
最後のループでは sleep しない、という手段はあるでしょうか。
何とか工夫すれば、判定できないループってないかも……。
どうもお騒がせしました。
((--i)) でiが0になる時、返り値1なんだ。
iが負の値になる時でも返り値0なのに、0になる時だけ特別なんですね。
0 件のコメント:
コメントを投稿