カウントダウン時間スクリプトの Google リファレンスを使用して、別の出力を試しています。つまり、残り秒数を表示します: 20. カウントダウンが 10 に達するたびに.. 90、80、70、60、50、40、30、20、10 としてカウントダウンします。clear in while ループを使用した例はたくさんありますが、カウントダウン時間を表示するときにスクリプトの他の出力をクリアしたくありません。
どこで間違いを犯しているのかを知りたいです。
function countdown ()
{
if (($# != 1)) || [[ $1 = *[![:digit:]]* ]]; then
echo "Usage: countdown seconds";
return;
fi;
local t=$1 remaining=$1;
SECONDS=0;
while sleep .2; do
printf '\rseconds remaining to proceed: '"$remaining";
if (( (remaining=t-SECONDS) <=0 )); then
printf '\rseconds remaining to proceed' 0;
break;
fi;
done
}