Unix shell 脚本:日期格式语法

Posted

技术标签:

【中文标题】Unix shell 脚本:日期格式语法【英文标题】:Unix shell scripting: date format syntax 【发布时间】:2021-10-14 16:31:05 【问题描述】:

我正在尝试获取昨天的日期,它在 hp ux 服务器中不起作用。

Prev_date=$(date +"y%m%d" -d "1 day ago")

为此,我仍然只获得当前日期。 20210811

你能帮忙吗?

【问题讨论】:

已经在这里讨论过 - ***.com/questions/3517982/… 这与任何shell都无关,仅与您正在使用的date的版本有关。 @chepner,确切地说,它与版本无关,而是date 实用程序的发布。而且 AFAIK 没有一个流行的统一(AIX、Solaris、HP-UX)支持--date key @user16598664,检查链接上的问题并在接受的答案中查看解决方案。 @RomeoNinov 通过“版本”,我并不是指任何特定项目的特定编号版本。 (如果你要假装 Unix 是第三变格的拉丁名词,复数应该是 unices。) 【参考方案1】:

你在“y”前面漏掉了一个百分比:这对我来说很好用:

echo $(date +"%y%m%d" -d "1 day ago")

【讨论】:

echo $(…) 似乎是多余的。 问题是关于HP-UX,不支持--date【参考方案2】:

如果你愿意,你可以使用下面的命令。

date --date=' 1 days ago' '+%Y-%m-%d'

它会给出类似的结果

 2021-09-06

我更喜欢这种格式,因为大多数时候我的脚本都包含用于获取数据的 SQL 查询,因此需要日期才能每天过滤掉数据。

【讨论】:

问题是关于HP-UX--date不支持!

以上是关于Unix shell 脚本:日期格式语法的主要内容,如果未能解决你的问题,请参考以下文章

date命令

datecal和clear命令

date 命令用法说明

shell脚本 - 日期比较与判断

Hive日期格式转换用法

Unix shell 脚本中的日期运算