Linux shell 动态条

#!/bin/bash
#隐藏光标
c_hide_cursor='\033[?25l'  
#显示光标
c_show_cursor='\033[?25h' 


#函数体
timeout(){
	#隐藏光标
	echo -en "$c_hide_cursor"

	#这是一个无限循环,如果要定时结束,可以在循环内添加条件.
    	while true ;do
		printf "\b" #删除一个字符
        	printf  "/" #添加一个字符 "/"
        	sleep 0.1 #等待0.1秒
        	printf "\b|" #删除一个字符,再添加一个字符 "|"
        	sleep 0.1
        	printf "\b\\" # "\" 反斜杠需要两个反斜杠才能显示
        	sleep 0.1
        	printf "\b-"
        	sleep 0.1
        	printf "\b|"
done
}

#打印信息,不换行
printf "请稍后: "  

#调用函数
timeout 

#函数结束后再显示光标. 由于我设置无限循环所以需要设置条件, 让函数自动结束再执行以下语句
echo -en "$c_show_cursor"


插图

image

计数器

timeout(){ #这个脚本最多计算到9的数字内。
    a=1
    while [ 9 != $a ];do
        a=$(($a+1))
        echo -en "$a"
        sleep 1
        
        echo -en "\b"
done 
}
printf "请稍等:" 
timeout 

截图

image

计数器 2

timeout(){ #这个脚本需要换行计数,不然会删除计数的字符。
    a=1
    while [ 99 != $a ];do
        a=$(($a+1))
        printf "$a"
        sleep 0.1
        printf  "\b\b\b"
done    
}

printf "请稍等: \n"
timeout

截图

image

计数条

timeout(){ 
    a=1
    while [ 50 != $a ];do
        a=$(($a+1))
        printf "#"
        sleep 0.1
        
done    
}

printf "请稍等:   "
timeout
printf "\n[ok]"

截图

image

posted @ 2022-04-19 17:34  edolf  阅读(215)  评论(0编辑  收藏  举报