菜鸟的天花板

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1. 转圈

渐次输出字符 '\\'  '|'  '/'  '-', 来实现转圈的效果# !/bin/bash

function waiting()
{
    i=0
    while [ $i -le 100 ]
    do
        for j in '\\' '|' '/' '-'
        do
            printf "\t\t\t\t%c %c %c test waiting %c %c %c\r" "$j" "$j" "$j" "$j" "$j" "$j"
            sleep 0.1
        done
        let i=i+4
    done
echo
} waiting

 

2. 进度条

# !/usr/bin/bash

mark=''
for ((ratio=0;${ratio}<=100;ratio+=5))
do
    sleep 0.2
    printf "progress:[%-40s]%d%%\r" "${mark}" "${ratio}"
    mark="##${mark}"
done
echo

注:若缺少最后一行的 "echo",那么 for循环执行完后,终端的光标不会另起一行,而是显示为:

xxx:~$ :[########################################]100%

 

3. 总结

     无论是转圈还是进度条,都是应用了多次 printf 结果都会显示在同一行的特性;基于这个特性,可以在同一行输出各种自定义的字符串,达到想要的显示效果。 

posted on 2023-07-12 09:52  新年1234567  阅读(519)  评论(0编辑  收藏  举报