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 在 命令行工具
每月 146 次下载
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
依赖项应确保跨平台可靠性,但可能存在例外。如果遇到它未按预期工作的情况(可能由于意外的转义码处理),请随时发送反馈,包括- 发生了什么
- 关于您的终端环境的详细重要信息
- 您的机器的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