gpt4 book ai didi

shell - 如何在 shell 脚本中检测 BSD 与 GNU 版本的日期

转载 作者:行者123 更新时间:2023-12-03 13:30:03 25 4
gpt4 key购买 nike

我正在编写一个需要进行一些日期字符串操作的 shell 脚本。该脚本应该在尽可能多的 *nix 变体中工作,因此我需要处理机器可能具有 BSD 或 GNU 版本的日期的情况。

测试操作系统类型的最优雅的方法是什么,以便我可以发送正确的日期标志?

编辑:
澄清一下,我的目标是使用日期的相对日期计算工具,这些工具在 BSD 和 GNU 中似乎不同。

BSD 示例

date -v -1d

GNU 示例
date --date="1 day ago"

最佳答案

你想检测什么版本的date您正在使用的命令,不一定是操作系统版本。

GNU Coreutils date命令接受 --version选项;其他版本没有:

if date --version >/dev/null 2>&1 ; then
echo Using GNU date
else
echo Not using GNU date
fi

但正如 William Pursell 所建议的那样,如果可能的话,您应该只使用两者共有的功能。

(我认为可用于 GNU date 的选项几乎是可用于 BSD 版本的选项的超集;如果是这种情况,那么假定 BSD 版本的代码应该适用于 GNU 版本。)

关于shell - 如何在 shell 脚本中检测 BSD 与 GNU 版本的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com