#进度条 #命令行工具 #ASCII #终端 #百分比 #可定制 #图表

app asciibar

一个命令行工具,用于以 ASCII 条形图打印百分比

4 个版本

0.1.3 2024年1月17日
0.1.2 2023年10月31日
0.1.1 2023年2月6日
0.1.0 2023年2月2日

22 in 可视化

每月30次下载

自定义许可证

13KB
143

asciibar

Build status Releases Crates.io

在终端中使用 ASCII 进度条可视化百分比。

screenshot screenshot

目录

功能

  • 可定制:可以自定义打印的每个字符,也可以通过 CLI 选项进行自定义
  • 速度:完全用 Rust 编写,注重速度

安装

从二进制文件

发布页面 包含适用于 Linux、macOS 和 Windows 的预编译二进制文件。

crates.io

cargo install asciibar

如何使用

asciibar 非常简单,旨在与 shell 脚本集成。

指定百分比

您可以使用 asciibar <PERCENTAGE> 提供百分比。

百分比通常表示为介于 0 和 1 或介于 0 和 100 之间的浮点值。因此,我们可以将 0 和 1(或 0 和 100)称为百分比尺度的最小和最大值。 asciibar 将自动猜测是否使用了这些默认范围。

例如,asciibar 0.1 将假定一个从 0 到 1 的比例,而 asciibar 10 将假定从 0 到 100 的比例。然而,您也可以使用 --min--max 自定义这些最小和最大值。请注意,在指定负值时,您必须使用以下格式 asciibar --[min|max]=-42 -- -10,否则参数解析器可能会将负值误认为是选项。例如,如果您想在 0 到 100 的比例上可视化 0.1 的百分比,您必须指定 asciibar --min 0 --max 100 0.1,否则 asciibar 将假定默认比例 0 到 1。

输出到标准输出

asciibar 将打印三个 "块" 到标准输出

  1. “填充”块(可使用 --filled <CHAR> 自定义),表示“已完成”的百分比(即左侧块)。
  2. “空”块(可使用 --empty <CHAR> 自定义),表示“尚未完成”的百分比(即右侧块)。
  3. “半填充”块(可使用 --half-filled <CHAR> 自定义),代表一个独特的中间块,旨在为条形图添加精度。它被添加为在“填充”块和“空”块之间的额外(可选)分段级别。它不一定总是打印(例如,如果可以使用 asciibar 0.5 精确显示百分比),但仅在可以添加精度时才会打印(例如,使用 asciibar --length 10 0.55)。

asciibar 的此示例输出可能有助于了解哪些块是哪些

filled   half-filled   empty
  |          |           |
=============>--------------

注意: 默认的“半填充”块仅在未提供自定义选项时打印(即使用所有默认字符)。如果只提供“填充”和/或“空”,则通常用作“半填充”的块将使用“空”字符。这样做的原因是,默认的“半填充”块可能在使用自定义的“填充”和“空”块之间看起来非常奇怪。

字符

您可以使用 --filled--half-filled--empty 选项提供任何您想要显示的字符。以下是个人喜欢的一些组合(第一行代表 asciibar 中的默认值)

填充 半填充 示例输出
███▌
= > - ===>---
# = ###====
███░░░░
███▒▒▒▒
███▓▓▓▓

长度

您可以使用 --length 指定输出多长/多宽(默认为 10 个字符)。

杂项

这两个功能在普通 shell 脚本中是可能的,但已被添加作为生活质量的改进。您可以使用 --border 添加自定义边框字符,该字符在条形图前后添加。您还可以指定条形图以换行符结束,使用 --newline

示例用法

# uses default chars for filled '█', half-filled '▌' and empty ' '
asciibar 0.55
█████▌    

# custom border
asciibar --border="|" 0.55
|█████▌    |

# custom filled and empty chars
asciibar --filled="░" --empty="█" 0.5
░░░░░█████

# custom length
cargo run -- --filled "=" --half-filled ">" --empty "-" --length 20 -- 0.58
===========>--------

依赖项

~3–15MB
~160K SLoC