免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2047 | 回复: 5
打印 上一主题 下一主题

bash 显示进度SHELL求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-09 11:05 |只看该作者 |倒序浏览
我想要写一个运行进度,,  相当于显示安装进,“……/-|\10%……”大家看看我应该怎样写,那个光标的显示需要回一个字符,在BASH里面应该怎么样控制,菜鸟一个,请帮忙!

论坛徽章:
0
2 [报告]
发表于 2005-07-09 11:30 |只看该作者

bash 显示进度SHELL求助

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
echo |awk '{printf "^)^",$1}'
while sleep 1
do
echo "$" |awk '{printf "%s",$1}'
done

论坛徽章:
0
3 [报告]
发表于 2005-07-09 12:00 |只看该作者

bash 显示进度SHELL求助

这个程序有问题啊,而且我现在最想知道的是怎么让光标倒退,然后盖掉刚才输出的那个字符,就相当于光标在转的感觉,我有看到用四个ECHO ,然后里的语句如:echo '|' "/b/c"   echo '/' "/b/c"等等这样,但我在SHELL里面试的话,把/b/c都输出来了,不知道BASH里面是怎么写的,郁闷,请大虾帮忙。

论坛徽章:
0
4 [报告]
发表于 2005-07-09 12:58 |只看该作者

bash 显示进度SHELL求助

关注,虽然有现成的可以用
你可以试试这个,看能否满足你的要求
http://www.theiling.de/projects/bar.html

论坛徽章:
0
5 [报告]
发表于 2005-07-09 13:05 |只看该作者

bash 显示进度SHELL求助

这算是一本书上摘抄下来的,我在别人的LOG里看到,但是,和我刚才讲的一样,我试着不行,不知道各位大虾可否帮忙看看。
function rotate
{
INTERVAL=0.1         #进度条旋转时间0.1秒,注意并不是所有系统都支持非整数
TCOUNT="0"                 
stty -echo >/dev/null 2>&1
while :
do
TCOUNT=`expr $TCOUNT + 1`
  case $TCOUNT in
  "1" echo '-'"\b\c" #在Linux中是 echo -e '-'"\b\c"
  sleep $INTERVAL
  ;;
  "2" echo '\\'"\b\c"
  sleep $INTERVAL
  ;;
  "3" echo "|\b\c"
  sleep $INTERVAL
  ;;
  "4" echo "/\b\c"
  sleep $INTERVAL
  ;;
  *) TCOUNT="0" ;;
  esac
done
stty echo
}

论坛徽章:
0
6 [报告]
发表于 2005-07-09 13:11 |只看该作者

bash 显示进度SHELL求助

原帖由 "wolfg" 发表:
关注,虽然有现成的可以用
你可以试试这个,看能否满足你的要求
http://www.theiling.de/projects/bar.html

谢谢!这个东东没用过,呵呵。可以试试。还要问一下,怎样使那个光标回格,就像C语言里的一样。可以盖掉前一个字符,重在一个位置输出!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP