shell 输出进度条
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
shell 输出进度条
我想我在运行脚本的时候输出进度条,如何实现呀,进度条跑的时间取决于脚本运行的时间@_@
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: shell 输出进度条
这是什么呀?
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: shell 输出进度条
mad_frog 写了:这是什么呀?
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: shell 输出进度条
[bash]for ((i=0;i<=50;i++))
do
for ((j=0;j<=$i;j+=1))
do
printf ">"
done
for ((k=0;k<=50-$j;k+=1))
do
printf "="
done
printf "\r"
sleep 0.1
done
echo ""
[/bash] 这个学习了
do
for ((j=0;j<=$i;j+=1))
do
printf ">"
done
for ((k=0;k<=50-$j;k+=1))
do
printf "="
done
printf "\r"
sleep 0.1
done
echo ""
[/bash]
代码: 全选
printf "\r"
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: shell 输出进度条
我的意思是它进度是根据我的脚本运行的时间来运行的呀
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: shell 输出进度条
那还不简单,过一会打印一个=不就行了?mad_frog 写了:我的意思是它进度是根据我的脚本运行的时间来运行的呀
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: shell 输出进度条
不懂mad_frog 写了:我的意思是它进度是根据我的脚本运行的时间来运行的呀
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: shell 输出进度条
[bash]
time1=`date +'%s'`
go() {
time2=`date +'%s'`
for ((;i<=$(($time2-$time1));i+=1))
do
printf ">"
done
}
while :
do
go
sleep 0.1
done
[/bash]今天心情好就写帮你写个了,授之以鱼不如授之以渔
time1=`date +'%s'`
go() {
time2=`date +'%s'`
for ((;i<=$(($time2-$time1));i+=1))
do
printf ">"
done
}
while :
do
go
sleep 0.1
done
[/bash]今天心情好就写帮你写个了,授之以鱼不如授之以渔
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: shell 输出进度条
想起来了么eexpress 写了:某些命令带-v
某些可以用rsync代替
某些如dd可以用watch
某些可以用bar
没一个好的。其实我忘记了一个命令。

-v rsync watch bar只是运行带个命令才能看到结果的吧,
-
- 帖子: 55
- 注册时间: 2011-06-29 11:26
Re: shell 输出进度条
应该可以通过pid查看进程,
cp -rf /home/server.tar.gz /root/ &
echo -ne "\033[1;31mCopy files , please wait "
#
i=0
while [ $i -lt 100000000 ]
do
for j in '-' '\\' '|' '/'
do
echo -ne "\033[1D$j"
usleep 50000
done
((i++))
if [ -s `pidof -s cp` ]; then
echo -e "\033[1D\033[1;31mOK! \033[0m"
break
fi
done
cp -rf /home/server.tar.gz /root/ &
echo -ne "\033[1;31mCopy files , please wait "
#
i=0
while [ $i -lt 100000000 ]
do
for j in '-' '\\' '|' '/'
do
echo -ne "\033[1D$j"
usleep 50000
done
((i++))
if [ -s `pidof -s cp` ]; then
echo -e "\033[1D\033[1;31mOK! \033[0m"
break
fi
done
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: shell 输出进度条
如果是想显示百分比,那么恐怕没有通用的办法。mad_frog 写了:我的意思是它进度是根据我的脚本运行的时间来运行的呀
- longxin1991
- 帖子: 1991
- 注册时间: 2010-07-29 10:53
- 系统: ukylin 20.04
- 联系:
Re: shell 输出进度条
学习了....
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: shell 输出进度条
代码: 全选
printf "\r"
学习!