hjack 发表于 2006-5-3 00:30

[SHELL we talk 之三]进度条控制

做毕业做累了,写个shell玩玩。

目的:我们执行一些脚本时,如果执行比较时间的话,有个进度条就可以方便知道脚本正在执行中。


#!/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.   "



说明:用一个while死循环在后台运行,并记下它的进程号,输出点符号,当点符号达到五个时,清空再重新输出,不断重复。

由于该循环是在后台运行,所以下在的代码还是会执行 ,./$@就是把参数传入的脚本,在此执行。执行完后就kill掉死循环。

但是对于系统命令还不能执行,比如./bar.sh ls这会出错。

做了一个小动画,效果见图。

[ 本帖最后由 hjack 于 2006-5-4 15:31 编辑 ]

wool王 发表于 2006-5-7 20:13

对于楼主的动画...比较无语...

hjack 发表于 2006-5-7 20:51

甘嚣,帮我做个好看一点的啦。。。。

wool王 发表于 2006-5-8 01:44

原帖由 hjack 于 2006/5/7 12:51 发表
甘嚣,帮我做个好看一点的啦。。。。

我识鬼做...

吾系话楼主个动画吾好睇,,,系话楼主放动画这个行为好搞野...
页: [1]
查看完整版本: [SHELL we talk 之三]进度条控制