Command line 将持续时间指定为命令行参数

Command line 将持续时间指定为命令行参数,command-line,user-experience,Command Line,User Experience,我正在编写一个命令行实用程序,它需要一个duration参数。现在我的挑战是持续时间可以从几分钟到几个月不等 我曾考虑过只用几秒钟,但在一个月内用大量的时间来交流似乎很难 有没有什么公认的方法可以在如此高的范围内传递持续时间?gnu date命令在这方面做得非常好 有一个带有C代码的ruby库,可以解析这些类型的时间规范 这个看起来也很有趣 我在不止一个程序中看到的另一个约定是在数字后使用字母限定符来表示除秒以外的单位 2m ( 2 minutes ) 2h ( 2 hours )

我正在编写一个命令行实用程序,它需要一个duration参数。现在我的挑战是持续时间可以从几分钟到几个月不等

我曾考虑过只用几秒钟,但在一个月内用大量的时间来交流似乎很难


有没有什么公认的方法可以在如此高的范围内传递持续时间?

gnu date命令在这方面做得非常好

有一个带有C代码的ruby库,可以解析这些类型的时间规范

这个看起来也很有趣

我在不止一个程序中看到的另一个约定是在数字后使用字母限定符来表示除秒以外的单位

2m ( 2 minutes ) 
2h ( 2 hours )  
2d ( 2 days )  
2M ( 2 months )

“at”和“find”都有类似的选项

find使用两个不同的选项,如-ctime和-cmin,分别花费数天和数分钟。 至少可以采用多种不同的形式(可能有您可以复制的有用代码),例如:


这两个命令行实用程序会立即浮现在脑海中。

您可以编写一个可以解析的格式,指示单位和数量。例如1个月“1米”,1分钟“1米”。如果我做了这样的事情,我会接受长格式的单位,如“1小时”或“2天”。
at now + 1 month
at 8am monday