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
在终端中使用 ASCII 进度条可视化百分比。
目录
功能
- 可定制:可以自定义打印的每个字符,也可以通过 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
将打印三个 "块" 到标准输出
- “填充”块(可使用
--filled <CHAR>
自定义),表示“已完成”的百分比(即左侧块)。 - “空”块(可使用
--empty <CHAR>
自定义),表示“尚未完成”的百分比(即右侧块)。 - “半填充”块(可使用
--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