BASH Shell 简易进度条小函数

不多说,直接上脚本。

# processbar <current> <total>
processbar() {
  local current=$1; local total=$2;
  local maxlen=80; local barlen=66; local perclen=14;
  local format="%-${barlen}s%$((maxlen-barlen))s"
  local perc="[$current/$total]"
  local progress=$((current*barlen/total))
  local prog=$(for i in `seq 0 $progress`; do printf '#'; done)
  printf "\r$format" $prog $perc
}

# Usage(Client)
for i in `seq 1 10`; do
  processbar $i 10
  sleep 1
done
echo ""

BASH Shell 简易进度条小函数

时间: 2024-10-09 06:59:06

BASH Shell 简易进度条小函数的相关文章

shell脚本的简易进度条

一.简易进度条的基础 1.数组 bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似于C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其 值应大于或等于0. 定义数组:在Shell中,用括号来表示数组,数组元素用"空格"符号分割开. 读取数组元素值的一般格式是:${array_name[index]}. 读取数组元素所有值的一般格式是:${array_name[*]}或者${array_name[@]}. 求取数组的长度:${

Linux中ctags、make以及进度条小程序(\r的应用)

一.ctags  查看函数定义的好工具 ctags -R 在当前目录建立tags文件 ctrl +]  + 回车 跳到函数定义处 ctrl + t 返回 二.make与Makefile make 是一条命令 Makefile 是一个文件 make的执行需要一个Makefile文件 Makefile 两个重要关系 依赖关系 依赖方法 touch Makefile/makefile 1 依赖方法前面要有Tab键 2 进行过程从上向下 向下时只要有一个可以执行就回退(向上走.退栈) 不再执行下面的(伪

java 调用bash shell脚本阻塞的小问题的解决

java  调用bash shell脚本阻塞的小问题的解决 背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结果给web 界面显示. 现象: Java 进程阻塞.使用ps命令可以看到被调用的shell 的执行进程状态为S 分析 Shell子进程的状态是S 睡眠状态,也就是该进程在等待某个条件满足,方能继续执行. Java程序在调用Runtime.getRuntime().exec(jyName)之后,lin

视频控制的简易进度条

视频控制的简易进度条 样式: 作用:控制视频的播放点,实时显示视频播放位置 html: <div class="coll"> <span name="progress"> <b></b> <b></b> <b></b> </span> </div> css: .coll{position: absolute;bottom: 20px;left: 2

Linux下简易进度条的实现

在生活中,进度条是很常见的,那么,进度条是如何实现的呢? 首先,进度条的动态是利用人眼视觉暂留效果的.实际上是如下过程: 先输出:[=                                               ]表示进度是1%,刷新之后 再输出:[==                                             ]......由于刷新的很快,所以看起来像是等号不断向后增加,直到进度完成. 在写这个程序之前我们需要了解一下的知识: 1.缓冲区 缓冲区分

Linux下进度条小程序

源码如下: 简单实现的在命令行下进行简单的进度条显示的功能,能模拟现实目前的进度并且用旋转的字符表示代码正在运行未卡住. 代码主要利用了printf的格式化输出,以及回车符/r,在这里%s前进行了-100的对齐,也就是左对齐100个字符. Linux 平台下与windows不同的是将换行符\n表示成两个动作\r\n,好比老式的打字机,\n回车代表换行,\r表示将光标移到左边首个字符的位置.而printf等库函数在输出时,封装底层的系统调用,实际上I/O都有缓冲区,所以,对于printf等函数而言

Linux下的简易进度条的实现

进度条的实现就是用'#'字符数量模拟当前进度,进度条的实现代码并不难,但首先应该注意以下几点: 1.\r和\n 回车换行符,是2个符.一个回车,一个换行.\r仅仅是回车,\n是换行.\r实际是回到行首.\n如果下一行已经有了一些内容的话它会在那些内容的后边.因为一般情况下下一行是没有数据的,所以很多时候\n也就成了\r\n作用一样. 2.fflush Linux下的输出有缓存,如果及时刷新显示, 需要调用用下 fflush. fflush处理的是已经从输入流中取出的数据,而不是输入流中剩余的数据

Linux下的进度条小程序

本文的题目就是实现一个进度条,进度条的应用在软件中无处不在,拷贝一个文件需要一个进度条,加载一个文件也需要一个进度条,来标志完成与否. 那么 ,一个进度条有哪些元素呢: 一个不断向右生长的容器(直观的看出当前的进度) 一个数据化反映进度的百分比. 一个标志(这个标志反映这个进度条是否在工作,还是卡死) 在这里有一些小小的知识点:C语言中缓冲区的刷新方式是以行缓冲刷新的.也就是说,程序要在输入流中取到一个行结束标志(可以是换行符和EOF)才会显示在输出设备(屏幕)上.注意,程序结束时,系统会强制刷

超简单CSS3水平动态进度条+小圆球+背景色渐变

实现的的效果图如下:效果是动态加载的 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="