我目前正在开发ESXI,希望在X天前获得约会 我有这个命令行在其他linux上工作:
now=`date +"%Y/%m/%d"`
earlier=`date -d "$now -15 days" +%d/%m/%Y`
但是当我尝试在我的esxi服务器上使用它时:
earlier=`date -d "$now -15 days" +%d/%m/%Y`
无效,我收到错误
date: invalid date '2018/01/30 -4 days'
所以我试着以不同的方式写日期,就像美国格式一样,但仍有错误。
esxi版本是6.0.0
我在互联网上搜索过但我找不到任何东西。
有人知道这是什么问题吗? 谢谢。
编辑:对于那些有相同问题的人,我在下面的评论中得到了解决方案
答案 0 :(得分:1)
事实证明这是busybox日期。 Busybox日期的功能非常有限,但幸运的是它支持(无证)@seconds语法:
date -d "@$(( $(busybox date +%s) - 86400 * 7 ))" +%d/%m/%Y
这当然要求你有一个现代版本的bash。如果此命令不起作用,请尝试键入" bash"如果可行则尝试再次输入命令。
如果你没有现代化的bash ......那么你是否安装了awk或bc?蟒蛇? Perl的?基本上,战术目标是让日期吐出秒数,减去7天的秒数,然后再次将输出输入日期以转换格式。
尝试使用此命令行。它避免了$ now引用,它可能会混淆某些版本的日期。
date -d "15 days ago" +%d/%m/%Y
如果这不起作用,您能告诉我们您使用的是哪个版本的日期吗? date --version
和/或date --help
应提供必要的信息。