TypechoJoeTheme

至尊技术网

登录
用户名
密码

【Linux】实现三个迷你小程序(倒计时,旋转指针,进度条),linux 小程序

2026-01-20
/
0 评论
/
1 阅读
/
正在检测是否收录...
01/20

标题:Linux终端下的三个趣味小程序:倒计时、旋转指针与进度条
关键词:Linux终端、Shell脚本、倒计时、旋转指针、进度条
描述:本文介绍如何在Linux终端下用Shell脚本实现三个实用又有趣的小程序:倒计时器、动态旋转指针和进度条,适合初学者学习终端动画效果。

正文:

在Linux终端中,我们不仅能完成各种系统管理任务,还能实现一些有趣的动态效果。今天,我们就来用Shell脚本编写三个迷你小程序:倒计时器、旋转指针和进度条。这些程序不仅实用,还能帮助我们理解终端控制字符和动画原理。

一、倒计时器:精准到秒的计时工具

倒计时器在很多场景下都很实用,比如煮泡面时计时,或者作为演示时的提醒工具。下面是一个简单的10秒倒计时实现:


#!/bin/bash

count=10
while [ $count -ge 0 ]; do
    echo -ne "倒计时: $count 秒 \r"
    sleep 1
    ((count--))
done
echo "时间到!"

代码解析:
- echo -ne中的-n表示不换行,-e启用转义字符解释
- \r是回车符,让光标回到行首实现原地更新
- sleep 1控制每秒更新一次

二、旋转指针:等待时的动态指示

当程序执行耗时操作时,一个旋转的指针能让用户知道程序仍在运行。这个效果只需要四个字符就能实现:


#!/bin/bash

spin='-\|/'
while true; do
    for i in ${spin}; do
        echo -ne "处理中... ${i}\r"
        sleep 0.1
    done
done

进阶技巧:
1. 可以通过调整sleep参数控制旋转速度
2. 添加颜色会让效果更醒目:echo -ne "\e[32m处理中... ${i}\e[0m\r"

三、进度条:直观的任务进度展示

进度条是最常见的UI元素之一,在终端中也能优雅实现。下面是带百分比的进度条:


#!/bin/bash

bar_length=50
for ((i=0; i<=$bar_length; i++)); do
    percent=$((i*2))
    bar=$(printf "%-${i}s" | tr ' ' '#')
    empty=$(printf "%-$((bar_length-i))s")
    echo -ne "进度: [${bar// /#}${empty}] ${percent}%\r"
    sleep 0.1
done
echo

关键点说明:
- printf "%-${i}s"创建占位字符串
- tr ' ' '#'将空格替换为进度符号
- 通过计算百分比实现精确显示

整合与优化

这三个小程序可以进一步优化:
1. 添加参数处理,让用户自定义时长/长度
2. 结合函数封装,提高代码复用性
3. 使用trap捕获Ctrl+C中断

例如,改进后的倒计时器可以这样调用:
./countdown.sh 30 # 30秒倒计时

终端动画看似简单,却蕴含着许多Linux编程的精髓:
- 转义字符的控制
- 进程时间管理
- 用户交互设计

下次当你需要给脚本添加一些视觉效果时,不妨试试这些技巧。它们不仅能让你的程序更专业,还能让枯燥的等待过程变得生动起来。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/42859/(转载时请注明本文出处及文章链接)

评论 (0)