关于linux进度条

关于linux进度条

本人做了一个进度条
cp -rf  mysql tomcat /usr/local/  &
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进程的方法不是很科学,如果这个时候用户在另外cp的时候就会有意想不到的错误,有没有更科学的方法?还望高手指点。      
这种方法并不准确
不过可以这么改进楼主所说的不足
$!保存了最后一个后台运行的pid
可以检测这个pid存在与否判断操作完没