LINUX Shell:进度条控制
目的:我们执行一些脚本时,如果执行比较时间的话,有个进度条就可以方便知道脚本正在执行中。CODE:#!/bin/sh######################################### 2006.5.2 created by hjack# ########################################Usage(){ echo "Usage: ba
·
目的:我们执行一些脚本时,如果执行比较时间的话,有个进度条就可以方便知道脚本正在执行中。
CODE:
#!/bin/sh
########################################
# 2006.5.2 created by hjack
#
########################################
Usage(){
echo "Usage: bar.sh script"
exit 1
}
#---------------------------------------
if [ $# -lt "1" ];then
Usage "$@"
fi
count=0
echo -n "running"
while true
do
count=`expr $count + 1`
echo -n "."
countj=`expr $count % 5`
if [ $countj -eq "0" ];then
echo -e -n "/b/b/b/b/b /b/b/b/b/b"
fi
sleep 1
done &
PID=$!
./$@
kill $PID
echo -e "/b/b/b/b/b/b/b/b/b/b/b/b/b/b/bfinished. "
########################################
# 2006.5.2 created by hjack
#
########################################
Usage(){
echo "Usage: bar.sh script"
exit 1
}
#---------------------------------------
if [ $# -lt "1" ];then
Usage "$@"
fi
count=0
echo -n "running"
while true
do
count=`expr $count + 1`
echo -n "."
countj=`expr $count % 5`
if [ $countj -eq "0" ];then
echo -e -n "/b/b/b/b/b /b/b/b/b/b"
fi
sleep 1
done &
PID=$!
./$@
kill $PID
echo -e "/b/b/b/b/b/b/b/b/b/b/b/b/b/b/bfinished. "
说明:用一个while死循环在后台运行,并记下它的进程号,输出点符号,当点符号达到五个时,清空再重新输出,不断重复。
由于该循环是在后台运行,所以下在的代码还是会执行 ,./$@就是把参数传入的脚本,在此执行。执行完后就kill掉死循环。
但是对于系统命令还不能执行,比如./bar.sh ls 这会出错。
更多推荐
已为社区贡献1条内容
所有评论(0)