Linux日常——shell彩色进度条

来源:互联网 发布:域名紧急升级 编辑:程序博客网 时间:2024/05/19 06:50
#!/bin/bashstr=""table=("|" "/" "-" "\\")i=0index=0while [ $i -le 100 ]do    if [ $i -lt 20 ]; then        printf "[\e[1;31m%-100s\e[0m][%d%%][\e[43;46;31m%c\e[0m]\r" "$str" "$i" "${table[$index]}"    elif [ $i -lt 40 ]; then        printf "[\e[1;33m%-100s\e[0m][%d%%][\e[43;46;31m%c\e[0m]\r" "$str" "$i" "${table[$index]}"    elif [ $i -lt 60 ]; then        printf "[\e[1;32m%-100s\e[0m][%d%%][\e[43;46;31m%c\e[0m]\r" "$str" "$i" "${table[$index]}"    elif [ $i -lt 80 ]; then        printf "[\e[1;34m%-100s\e[0m][%d%%][\e[43;46;31m%c\e[0m]\r" "$str" "$i" "${table[$index]}"    else        printf "[\e[1;35m%-100s\e[0m][%d%%][\e[43;46;31m%c\e[0m]\r" "$str" "$i" "${table[$index]}"    fi       str+='#'    let i++    let index++    let index%=4    usleep 200000doneprintf "\n"

运行结果:
这里写图片描述

下面附上C语言:

#include<stdio.h>#include<stdio.h>#include<unistd.h>int main(){        int i = 0;        char arr[52];//0~50+'\0'=102        arr[0] = 0;        const char* labk = "|/-\\|";        while (i <= 50)        {            printf("[%-50s][%d%%][%c]\r", arr, i, labk[i % 4]);            fflush(stdout);            arr[i] = '#';            i++;            arr[i] = 0;            usleep(150000);        }        printf("\n");        return 0;}

运行结果:
这里写图片描述

原创粉丝点击