使用 Shell 脚本实现安装进度指示器

推荐阅读

Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506
Helm3(K8S 资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html

本文原文链接:https://blog.csdn.net/xzk9381/article/details/111314715,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。

一、安装过程中使用旋转线来表示进度

#!/bin/bash

function KILLPROC(){
	echo $1 | xargs kill -9 &> /dev/null
}

function PROC_NAME(){
    printf "%-45s" ${1}
    tput sc
    while true
    do
        for ROATE in '-' "\\" '|' '/'
        do
            tput rc && tput ed
            printf "\033[1;36m%-s\033[0m" ${ROATE}
            sleep 0.5
        done
    done
}

function CHECK_STATUS(){
    if [ $? == 0 ];then
        KILLPROC ${1} &> /dev/null
        tput rc && tput ed
        printf "\033[1;36m%-7s\033[0m\n" 'SUCCESS'
    else
        KILLPROC ${1} &> /dev/null
        tput rc && tput ed
        printf "\033[1;31m%-7s\033[0m\n" 'FAILED'
    fi
}

function NGINX_INSTALL(){
    PROC_NAME Nginx_Service &
    PROC_PID=$!

    apt-get install nginx -y &> /dev/null
    CHECK_STATUS ${PROC_PID}
}

NGINX_INSTALL

二、使用原点来表示进度

本文原文链接:https://blog.csdn.net/xzk9381/article/details/111314715,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。

dots函数每隔一段时间打印一个圆点,这个时间值可以通过第一个参数传入,否则默认为5秒。在后台启动dots函数之后,通过"$!"获取dots的pid,然后开始执行耗时的工作,在工作执行完毕之后kill掉后台执行的dots。trap命令是为了防止用户Ctrl_C中断脚本执行的时候dots仍然在后台执行。

#!/bin/bash
function dots(){
    seconds=${1:-5} # print a dot every 5 seconds by default
    while true
    do
        sleep $seconds
        echo -n '.'
    done
}
 
dots 10 &
BG_PID=$!
trap "kill -9 $BG_PID" INT
 
# Do the real job here
sleep 150
kill $BG_PID
echo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

店伙计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值