#计时器 #倒计时 #终端 #控制台 #命令行

应用 sleepview

终端中可见的倒计时计时器

19 个版本 (稳定版)

1.2.6001 2024 年 7 月 18 日
1.2.500 2024 年 7 月 15 日
1.0.2 2024 年 6 月 25 日
0.1.3 2024 年 6 月 20 日

#235命令行工具

Download history 365/week @ 2024-06-15 189/week @ 2024-06-22 518/week @ 2024-06-29 101/week @ 2024-07-06 528/week @ 2024-07-13 64/week @ 2024-07-20 2/week @ 2024-07-27

每月 146 次下载

MIT 许可证

27KB
377

你有没有使用过 sleep 命令,但同时又希望看到实际的时间倒计时?现在你可以做到了!

用法

sleepview [选项] [开关] 持续时间 ...sleepview [选项] 持续时间[后缀]...

持续时间:倒计时的秒数。可以与开关组合使用,也可以不使用开关而完全省略。使用时间戳将禁用其他开关,并且每种开关只允许一个。多个非时间戳持续时间将相加。

后缀:可以是 's'、'm'、'h' 或 'd' 分别代表秒、分钟、小时或天。任何类型的多个持续时间都将相加。这被视为一个后备方法,并且只有在没有开关的情况下才能正常工作。

开关

-h : 显示此帮助信息并退出。

-d : 指定天数。

-H : 指定小时。

-m : 指定分钟。

-t : 指定时间戳,格式为 (D)D:(H)H:(M)M:(S)S(.DEC) -- 天、小时、分钟、秒、小数部分。

选项

-f :\t(完整) 显示时间戳的全宽,无论目标时间如何。如果没有此选项,在显示格式中将省略始终显示为零的字段。

-n :\t(无换行) 当程序正常结束时不要附加换行符 -- 这通常会导致输出被提示符或同一行上的任何其他输出覆盖。

-j :\t(json) 以 json 格式输出数据。不建议常规使用。与 -f 选项兼容。

安装

cargo install sleepview (当然需要 Rust。)

重要用法细节

  • crossterm 依赖项应确保跨平台可靠性,但可能存在例外。如果遇到它未按预期工作的情况(可能由于意外的转义码处理),请随时发送反馈,包括

    1. 发生了什么
    2. 关于您的终端环境的详细重要信息
    3. 您的机器的CPU架构和操作系统

    (可能最好也向crossterm团队报告任何显示问题。)

  • 这将比标准的 sleep 命令使用更多的CPU资源,因为它必须计算经过的时间并将其组织成[DD:]HH:MM:SS.0MS(天,小时,分钟,秒,毫秒)的格式。话虽如此,它旨在平衡精度和效率。

  • 要将它用作倒计时计时器,建议在程序之后立即执行某种警报命令。

例如,在一个类似bash的环境中使用响铃声符(可能不是所有地方都支持)

sleepview-m1.5 &&echo'\a'

或者

sleepview-m1 30 &&echo'\a'

或者

sleepview-t1:30 &&echo'\a'

或者

sleepview 1m 30s && echo '\a' ('s'是可选的)

这设置了一个持续一分半钟的计时器,并假定它没有被取消,则将响铃声符打印到标准输出。如果语法错误或程序被ctrl-c或kill命令中断,则由于命令之间的&&,它不应该继续到&&之后的echo命令。在语法错误的情况下,程序内部崩溃并抛出101退出代码,而不是继续所需的成功代码0。这很重要,因为你(可能)不希望你的闹钟/铃声在正确时间之前响起。

为了常规使用,可能需要像这样的shell函数

function timer() {
   sleepview "$@" && your_alarm_command
}

计划功能

  • 添加与GNU sleep相同的解析参数的能力,即 sleepview NUMBER[SUFFIX],其中后缀可以是无/'s'代表秒,'m'代表分钟,'h'代表小时,'d'代表天。
  • 添加JSON输出支持,以提高程序互操作性。

开发

如果您已克隆了存储库,可以通过将环境变量 RUST_LOG 设置为 debug 来启用调试信息。例如: RUST_LOG=debug cargo run -- 1.1

反馈

相关的建议、问题、担忧和/或问题可以发送到 [email protected]

依赖

~12-23MB
~362K SLoC