# 分享一个管道进度监控小工具顺便回答一个上期评论区的问题

* 抖音：<https://v.douyin.com/i8G9Tq9t/>
* B站：<https://www.bilibili.com/video/BV1WC4y197if/>

我之前啊

在导入MySQL数据库的时候

都是一直等

没有什么进度哈，像这样

大家看就一直等

没有什么进度条

而且呢终止的时候也比较慢

特别麻烦

要等很久

我先把它关掉哈

然后今天给大家分享一个工具

叫PV全称叫pipe viewer

它有很多的安装方法

最原始的就是下来自己编译安装

然后还支持很多系统的安装方法

比如说啊apt-get呀

或者yum啊

还有Mac系统的brew啊

都可以

它安装好之后怎么用呢

还是刚才那个命令

改一下mysql -u root -p

然后db

刚才是直接把这个文件放这了

对吧

现在呢

我们不需要在这写这个文件了

然后呢在前面用PV

然后这个文件

然后呢用管道，注意看

然后输密码

大家看，它就有进度了

而且呢这块还有剩余的时间

好我终止一下啊

然后在录这个视频的时候呢

我就想起了上期那个\r的问题

很多同学说的没错啊

\r是一个遗留的产物

但是他现在的其实也是有用的

比如说做这个进度条

我们要保证他在一行里边一直更新

我们就可以用\r回到前面（前提：不换行）

再重新打印

那对此呢

我在java里就简单写了个demo

像这样啊

准备了一个Bar

主要负责这个进度条的展示

然后呢bar.show()来展示这进度条

然后延迟一秒

去开始模拟这个进度条的变化

然后最重要的是

就是在这里边show()的时候注意

其实就是加了一个

每次循环重新打印这一行

我们来看一下效果啊

因为我要获取这个控制台的宽度

用了这个jline这个库

但是这个库呢

它没法在这个调试的时候获取宽度

所以呢我们用这个终端

我先进到这个target里边

然后java

开始大家看就像这个效果

然后呢我们去终端也是一样的：java ...
