倒计时bash脚本,无需在while循环中使用clear
有了谷歌的倒数计时scipt参考,我正在尝试一个不同的输出。i、 e显示继续操作的剩余秒数:20。每次倒计时到10点。。它倒计时为90、80、70、60、50、40、30、20、10。在while循环中使用clear给出了很多示例,但是我不想在显示倒计时时清除脚本和其他输出 我想知道我在哪里犯了错误倒计时bash脚本,无需在while循环中使用clear,bash,Bash,有了谷歌的倒数计时scipt参考,我正在尝试一个不同的输出。i、 e显示继续操作的剩余秒数:20。每次倒计时到10点。。它倒计时为90、80、70、60、50、40、30、20、10。在while循环中使用clear给出了很多示例,但是我不想在显示倒计时时清除脚本和其他输出 我想知道我在哪里犯了错误 function countdown () { if (($# != 1)) || [[ $1 = *[![:digit:]]* ]]; then
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
}
函数倒计时()
{
如果($#!=1))|[$1=*[![:digit:]*];那么
回显“用法:倒计时秒”;
返回;
fi;
本地t=1美元剩余=1美元;
秒=0;
睡觉的时候
printf'\r要继续的剩余秒数:“$remaining”;
如果(((剩余=t秒)问题是它实际上在倒数9,8,7,6等,但您从未从10中删除尾随的0,因此它保留在屏幕上。简单修复:
printf '\rseconds remaining to proceed: '"$remaining"' ';
添加一个空格,在屏幕上划掉0,您就一切正常。@Johnbritto:如果您觉得答案对您的问题正确,请务必接受答案。:)