Bash Shell日期和时间

或许你会感觉处理日期和时间不是什么难事,但事实并非如此。不管你是编写 shell 脚本还是大型程序,记录时间(timekeeping)都是一件麻烦事:时间和日期的不同显示格式、夏令时、闰年、闰秒等。例如,假设有一份合同清单以及签订合同的日期,而你想计算所有这些合同的到期日期。这可不是件简单事:是否会受到闰年影响?夏令时会不会给合同带来问题?如何格式化输出以消除歧义?7/4/07 是指 2007 年 7 月 4 日,还是 2007 年 4 月 7 日?

日期和时间渗透在计算机领域的方方面面。你迟早会碰上它们:在系统、应用程序或事务日志中,在数据处理脚本中,在用户或管理任务中,等等。本文将帮助你尽可能干净利索地处理日期和时间。计算机特别擅长准确地记录时间,特别是当使用网络时间协议(Network time protocol,NTP)保持本机时间与国家和国际时间同步的时候。在理解不同地区之间的夏令时差异方面,计算机的表现也不错。要想在 shell 脚本中处理时间,得用到 Unix 的 date 命令(能使用该命令的 GNU 版本就更好了,这是 Linux 系统的标配)。date 能够以不同的格式显示日期,甚至还能正确地进行日期运算。

注意,gawk(awk 的 GNU 版本)的 strftime 格式化功能和 GNU date 命令一样。除了一个简单的例子,本文不打算讲述 gawk 的用法。建议你坚持使用 GNU 版本的 date 命令,不仅更易用,而且还有一个非常实用的 -d 选项。但也别忘记 gawk,以防碰到一个没有 GNU date、只有 gawk 的系统。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!