关闭

LINUX Shell:进度条控制

标签: shelllinux脚本kill
2591人阅读 评论(0) 收藏 举报
分类:

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

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.   "

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

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48140次
    • 积分:658
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    最新评论