首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用管道查看器在Cygwin中获得进度百分比

如何使用管道查看器在Cygwin中获得进度百分比
EN

Stack Overflow用户
提问于 2021-11-18 02:36:27
回答 1查看 58关注 0票数 0

enter code here我编写了一个脚本,将数据库从指定的sql文件导入到特定的架构中。我使用管道查看器查看进度。当错误发生时,负载制动器。因此,我尝试创建一个新函数,以便在发生错误时尝试加载3次。(这很好)有时在加载完成100%之后会发生错误,所以在这种情况下我想忽略这个错误。有方法知道错误发生时所达到的进度百分比吗?

代码语言:javascript
复制
try_Load_date_schema(){
    var=$(date +%Y-%m-%d -d "$1").sql;
    count=0;    
    echo $var;
    cddumps;
    echo "starting load ${var}" $2; 
  while true; do
      loadSucceeded=1;
      echo "attempt: "$((count+1));
      dropSchema $2;
      createSchema $2;
      pv $var | mysql --defaults-extra-file=~/localhost.mysql.conf -h 127.0.0.1 -u root --default-character-set=utf8 $2 || loadSucceeded=0;
      if(("$loadSucceeded" == 0));then # i need to check the progress percentage here
          echo "Loading failed"
          if (("$count" == 2));then 
              echo " failed to load db with 3 attempts"
              break;
          else
              echo "try loading again ..."
              ((count++))         
          fi
        else
            echo "load Succeeded"
            break;
        fi
  done
  echo "ending load"; 
}

我想把屏幕截图中的情况考虑为已完成,并且不再加载

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 16:42:20

有方法知道错误发生时所达到的进度百分比吗?

我们可以捕获变量中的最终百分比,并对100%进行测试,因此,使loadSucceeded只取决于此,如您所需,如下所示:

代码语言:javascript
复制
pct=$({ pv $var | mysql --defaults-extra-file=~/localhost.mysql.conf -h 127.0.0.1 -u root --default-character-set=utf8 $2; } |& tee /dev/tty | grep -o '[0-9]\+%' | tail -1)
[ $pct == 100% ] || loadSucceeded=0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70013912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档