【探索Linux世界|中秋特辑】--- 倒计时和进度条的实现与演示
#!/bin/bash
# 中秋节倒计时函数
function countdown() {
local date=$1
local now=$(date +%s)
local target=$(date -d "$date" +%s)
local remaining=$((target-now))
local days=$((remaining / 86400))
local hours=$(( (remaining % 86400) / 3600 ))
local minutes=$(( (remaining % 3600) / 60 ))
local seconds=$((remaining % 60))
# 打印倒计时信息
echo -ne "中秋节还有: $days 天 $hours 小时 $minutes 分钟 $seconds 秒\r"
}
# 进度条函数
function progress_bar() {
local width=50
local progress=$1
local bar=$(printf '=%.0s' {1..$width})
local filled=$(printf '=' $(seq 1 $progress $width))
local unfilled=${bar:${#filled}}
# 打印进度条
echo -ne " [$filled${unfilled}] $progress%\r"
}
# 中秋节的日期
mid_autumn_date="2023-09-28 00:00:00"
# 主循环
while true; do
# 倒计时
countdown "$mid_autumn_date"
# 进度条展示
progress_bar $(( RANDOM % 101 ))
# 每秒刷新
sleep 1
done
这段代码使用了bash脚本语言,实现了中秋节倒计时和简单进度条的功能。它首先定义了两个函数:countdown
和progress_bar
。countdown
函数计算了目标日期与当前日期的差值,并格式化输出倒计时信息。progress_bar
函数则生成了一个宽度为50的进度条,并随机更新进度。在主循环中,两个函数被周期性地调用,实现计时和进度展示的功能。
评论已关闭