shell脚本实现倒计时功能(用户可控制)

本文介绍了一段使用Shell脚本实现倒计时功能的代码,用户可以通过输入分钟和秒数来设定倒计时的时间。该脚本通过循环计算剩余时间,并实时更新显示。

写shell脚本实现倒计时的功能,用户可以输入倒计时的时间

#!/bin/base
read -p “minute:” m
read -p “second:” s
for ((Time=m*60+s;Time>0;Time–))
do
let m=Time/60
let s=Time%60
echo -n " m:m:m:s "
echo -ne “\r”
sleep 1
done

### 使用 `seq` 和 `for` 循环实现倒计时并显示进度条 可以使用 `seq` 命令生成一个从高到低的数字序列,结合 `for` 循环实现倒计时,并通过 `echo -ne` 和 `\r` 实现进度条: ```bash #!/bin/bash total=10 for i in $(seq $total -1 1) do # 计算进度百分比 percent=$(( (total - i) * 100 / total )) # 显示进度条 echo -ne "倒计时: $i 秒 [${percent}%]\r" sleep 1 done echo -e "\n倒计时结束" ``` 该脚本使用 `seq` 生成从 10 到 1 的序列,并通过 `echo -ne` 实现原地刷新进度条[^1]。 ### 使用类 C 风格的 `for` 语法实现倒计时并显示进度条 Bash 支持类 C 语言风格的 `for` 循环语法,可以更直观地控制倒计时,并结合进度条显示: ```bash #!/bin/bash total=10 for ((i=total; i>0; i--)) do percent=$(( (total - i) * 100 / total )) echo -ne "倒计时: $i 秒 [${percent}%]\r" sleep 1 done echo -e "\n倒计时结束" ``` 该脚本使用类 C 风格的 `for` 循环实现倒计时,并通过计算百分比显示进度条[^1]。 ### 使用 `while` 循环实现倒计时并显示进度条 除了 `for` 循环,还可以使用 `while` 循环结合变量递减实现倒计时并显示进度条: ```bash #!/bin/bash i=10 total=10 while [ $i -gt 0 ] do percent=$(( (total - i) * 100 / total )) echo -ne "倒计时: $i 秒 [${percent}%]\r" sleep 1 ((i--)) done echo -e "\n倒计时结束" ``` 该脚本使用 `while` 循环持续执行,直到计数器 `i` 变为 0 为止,并通过 `echo -ne` 实现进度条[^1]。 ### 使用 `\r` 实现原地刷新倒计时和进度条 通过 `echo -ne` 和 `\r` 实现倒计时和进度条在一行内刷新显示: ```bash #!/bin/bash for i in {10..1} do percent=$(( (10 - i) * 10 / 10 )) # 计算进度条长度 bar="" for ((j=0; j<percent; j++)) do bar+="=" done echo -ne "倒计时: $i 秒 [$bar] [${percent}0%]\r" sleep 1 done echo -e "\n倒计时结束" ``` 该脚本通过构建进度条字符串 `bar` 并结合 `\r` 实现动态刷新显示[^1]。 ### 添加逻辑判断控制倒计时流程 可以在倒计时脚本中加入逻辑判断语句,例如在特定条件下提前终止倒计时并更新进度条: ```bash #!/bin/bash for ((i=10; i>0; i--)) do if [ $i -eq 5 ]; then echo -e "\n中途停止倒计时" break fi percent=$(( (10 - i) * 10 / 10 )) bar="" for ((j=0; j<percent; j++)) do bar+="=" done echo -ne "倒计时: $i 秒 [$bar] [${percent}0%]\r" sleep 1 done ``` 当倒计时到 5 时,脚本将输出提示并使用 `break` 提前退出循环[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值