击进度条 [英] Bash progress bar
问题描述
我用下面的脚本要经过的whois域的大名单,并找到登记处(用于服务器/ DNS迁移很有用),它工作正常。
I'm using the following script to go through a large list of domains in whois and find the registrar (useful for server/DNS migrations) and it works fine.
不过,我想结合一个进度条到它只是为了方便起见。这里是我的剧本,如果它可以提高让我知道:
However I am wanting to incorporate a progress bar into it just for the sake of convenience. Here's my script, if it can be improved let me know:
#!/bin/bash
for f in `cat /var/www/vhosts/domainlist`
do
if
domain=$f
[ "$domain" ] ;
then
whois $f | grep -i domainregistrar > /dev/null
if
[ $? -le 0 ] ;
then
echo $f >> our_registrar
else
echo $f >> external_registrar
fi
fi
done
echo "Done, check our_registrar file."
我已经试过这首:<一href=\"http://moblog.bradleyit.com/2010/02/simple-bash-progress-bar-function.html\">http://moblog.bradleyit.com/2010/02/simple-bash-progress-bar-function.html
然后这但没有运气。
你有什么估计是让落实到该脚本的进度条最简单的方法?
What do you reckon is the easiest way to get a progress bar implemented into that script?
推荐答案
下面是一个奇特的进度条,你可能会喜欢...
Here's a fancy progress bar that you might enjoy...
#!/bin/bash
# Slick Progress Bar
# Created by: Ian Brown (ijbrown@hotmail.com)
# Please share with me your modifications
# Functions
PUT(){ echo -en "\033[${1};${2}H";}
DRAW(){ echo -en "\033%";echo -en "\033(0";}
WRITE(){ echo -en "\033(B";}
HIDECURSOR(){ echo -en "\033[?25l";}
NORM(){ echo -en "\033[?12l\033[?25h";}
function showBar {
percDone=$(echo 'scale=2;'$1/$2*100 | bc)
halfDone=$(echo $percDone/2 | bc) #I prefer a half sized bar graph
barLen=$(echo ${percDone%'.00'})
halfDone=`expr $halfDone + 6`
tput bold
PUT 7 28; printf "%4.4s " $barLen% #Print the percentage
PUT 5 $halfDone; echo -e "\033[7m \033[0m" #Draw the bar
tput sgr0
}
# Start Script
clear
HIDECURSOR
echo -e ""
echo -e ""
DRAW #magic starts here - must use caps in draw mode
echo -e " PLEASE WAIT WHILE SCRIPT IS IN PROGRESS"
echo -e " lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk"
echo -e " x x"
echo -e " mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj"
WRITE
#
# Insert your script here
for (( i=0; i<=50; i++ ))
do
showBar $i 50 #Call bar drawing function "showBar"
sleep .2
done
# End of your script
# Clean up at end of script
PUT 10 12
echo -e ""
NORM
看起来是这样的:
looks like this:
这篇关于击进度条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!