【发布时间】:2012-01-05 18:35:48
【问题描述】:
我正在编写一个需要对日期字符串进行操作的 shell 脚本。该脚本应该可以在尽可能多的 *nix 变体中工作,因此我需要处理机器可能具有 BSD 或 GNU 版本日期的情况。
测试操作系统类型的最优雅的方法是什么,以便我可以发送正确的日期标志?
编辑: 澄清一下,我的目标是使用日期的相对日期计算工具,这在 BSD 和 GNU 中似乎不同。
BSD 示例
date -v -1d
GNU 示例
date --date="1 day ago"
【问题讨论】:
-
检测操作系统类型是没有用的,因为 gnu date 可能安装在 BSD 上,或者从 GNU-Linux 机器上卸载。
-
好的,知道这很有用。我应该更清楚。我的目标是进行相对日期计算,(我认为)在 GNU 中是使用 -v 完成的,而在 BSD 中则略有不同,但使用 --date。有没有一种通用的方法来做这些日期减法?